-
카테고리
-
세부 분야
게임 프로그래밍
-
해결 여부
해결됨
다형성 부분에 질문있습니다.
21.11.29 14:19 작성 조회수 103
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");
}
이런 식으로 하는 것인데 다른 간단한 방법이 더 있는지 궁금합니다
답변을 작성해보세요.
0
Rookiss
지식공유자2021.11.29
https://stackoverflow.com/questions/1334254/how-can-i-call-the-base-implementation-of-an-overridden-virtual-method
요약하면 C#에선 그런 상황을 설계적인 결함으로 간주하기에
'정상적'인 방법으로는 그렇게 할 수가 없습니다.
위에 찾으신 방법은 잘못되었습니다. (새로운 Player 객체를 만들기 때문)
답변 1