강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

1029 Lamb님의 프로필 이미지
1029 Lamb

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문

문자열 둘러보기

다형성 부분에 질문있습니다.

해결된 질문

작성

·

198

0

class Player
{
public virtual void Move()
{
Console.WriteLine("Player");
}
}
class Knight : Player
{
public override void Move()
{
Console.WriteLine("Knight");
}
}
class SuperKnight : Knight
{
public override void Move()
{
base.Move();
Console.WriteLine("SuperKnight");
}
}
 
여기서 SuperKnight부분에 base를 사용하니 Knight의 Move를 실행하던데 혹시 여기서 Player의 Move를 사용할려면 어떻게 하면되나요?
 
현재 찾은 방법은
Player player = new Player();
public override void Move()
{
player.Move();
Console.WriteLine("SuperKnight");
}
이런 식으로 하는 것인데 다른 간단한 방법이 더 있는지 궁금합니다

답변 1

0

Rookiss님의 프로필 이미지
Rookiss
지식공유자

https://stackoverflow.com/questions/1334254/how-can-i-call-the-base-implementation-of-an-overridden-virtual-method

요약하면 C#에선 그런 상황을 설계적인 결함으로 간주하기에
'정상적'인 방법으로는 그렇게 할 수가 없습니다.
위에 찾으신 방법은 잘못되었습니다. (새로운 Player 객체를 만들기 때문)

1029 Lamb님의 프로필 이미지
1029 Lamb

작성한 질문수

질문하기