virtual

    [C++ Primer Plus] 13. Class Inheritance

    대답할 질문 상속을 통해 어떤 일을 할 수 있는가? derived-class의 constructor와 destructor는 어떻게 작동하는가? Is-a relationship은 무엇인가? dynamic binding이 default가 아닌 이유가 무엇인가? virtual function은 어떻게 작동하는가? derived-class에서 함수를 재정의할 때 무엇을 유의해야 하는가? Abstract Base Class는 어떻게 만들 수 있는가? 왜 만드는가? Class Inheritance OOP의 목적 중 하나가 코드 재사용성이다. Inheritance(상속)는 이 특성을 강화한다. C library를 생각해보자. 따로 소스 코드가 제공되지 않는 라이브러리라면 우리는 특정 함수를 입맛대로 바꾸기 어려울 것..

    Unity : Virtual, Abstract, Interface

    가상(virtual)과 추상(abstract) 가상과 추상 사이에 핵심적인 차이점은 "완성도"다. 가상 클래스는 재정의(override)할 수 있지만 필수는 아니다. 반대로 추상 클래스는 '불완전하다는 의미'로서 파생 클래스에서 의무적으로 재정의해야 한다. 이 때, 불완전하다는 의미는 추상(abstract) 키워드를 달면 구체적은 기능을 제공할 수 없다는 뜻이다. 예시로 살펴보자. // ============================================== // 가상 클래스 예제 // ============================================== public class Animal { public virtual void Speak() { Console.WriteLine(..