클래스의 특성을 이용한 디자인 패턴의 시작
위 글은 이재환님의 게임 디자인 패턴 with Unity 인프런 강의를 듣고 남긴 필기입니다.
클래스의 특성을 이용한 디자인 패턴의 시작
- 디자인 패턴은
하위 클래스 객체
를상위 클래스 객체
에 대입할 수 있다는 점에서 거의 모든 디자인 패턴이 시작한다. - 반대로
상위 클래스 객체
는하위 클래스 객체
에 대입할 수 없다.왜냐면
하위 클래스 객체
는상위 클래스 객체
보다 더 많은 멤버를 가질 수 있기 때문이다. 정보가 빈다.하위 클래스 객체
는상위 클래스 객체
가 갖는 멤버 변수, 함수와 같은 정보를 모두 포함하고, 반대로상위 클래스 객체
는하위 클래스 객체
보다 갖는 정보가 적기 때문에 이를 억지로 대입하려고하면 정보의 공백이 생겨버린다. 그래서 이를 컴파일러에서 막는다.
하위 클래스
에서재정의한 멤버 함수
를상위 클래스
의 포인터로 호출하면 일반적으로 재정의 전의 함수가 호출된다. 이를 막고하위 클래스
의 함수가 호출되게 하려면상위 클래스
에서 그 함수를가상 함수
로 정의한다.
- 이 결과는
sub
클래스의Execute1()
함수가 호출된다. - 각각의
virtual
과override
키워드를 지우면super
클래스의Execute1()
함수가 호출된다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.