다음 코드의 실행 결과는?
다음 코드의 실행 결과는?
class Animal
{
public virtual void Sound()
{
Console.WriteLine("Animal sound");
}
}
class Cat : Animal
{
public override void Sound()
{
Console.WriteLine("Meow");
}
}
class Program
{
static void Main(string[] args)
{
Animal myAnimal = new Cat();
myAnimal.Sound();
}
}
정답: B
다형성에 의해 실제 객체 타입(Cat)의 메서드가 호출됩니다.
실행 과정:
1.
Animal myAnimal = new Cat()
⦁ 변수 타입: Animal
⦁ 실제 객체: Cat
2.
myAnimal.Sound()
호출⦁ virtual-override 관계
⦁ 실제 객체(Cat)의 Sound() 실행
3. "Meow" 출력
다형성의 핵심:
⦁ 참조 타입이 아닌 실제 객체 타입의 메서드 실행
⦁ 런타임에 결정 (동적 바인딩)
⦁ virtual-override가 있어야 작동
💡 학습 팁
이 문제를 포함한 C# 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.