override
-
2024.03.06 - 오버라이딩(Overriding), 가상 함수(virtual)C# 2024. 3. 6. 16:15
오버라이딩(Overriding) 오버라이딩(Overrriding)은 부모 클래스에서 정의된 메서드를 자식 클래스에서 재정의 하는 것을 의미한다. 부모 클래스에서 상속 받은 메서드를 재정의 하지 않으면, 자식 클래스의 메서드는 부모 클래스의 메서드를 가리킨다. 다음은 자식 클래스에서 부모 클래스의 메서드를 재정의 한 것이다. 다만, 이렇게 함수를 재정의 하는 것은 실제로 메서드 오버라이딩이 발생하지 않는 경우가 있다. 다음 예제를 살펴보자. 이 코드는 Child 클래스의 인스턴스를 Parent 클래스의 변수에 할당하고 있다. (업캐스팅이 일어난다.) 변수 c는 Parent 타입이지만, 실제로는 Child 클래스의 인스턴스를 참조하고 있다. 그러나 c를 통해 Print를 참조할 때 메서드 오버라이딩이 발생하..