21.12.28 벌쳐 vs 질럿
2021. 12. 29. 01:01ㆍC#/수업 내용
Vulture 클래스를 만들 때 기존 작성해둔 Unit 클래스를 상속시켜
팩토리 패턴으로 인스턴스를 만드려다가 새로 안 게 있다.
부모클래스의 가상함수는 파생클래스의 인스턴스에서 호출이 가능한 반면,
파생클래스의 일반 함수는 그렇지 않은 것 같다.
그러니까 Unit 클래스에서 정의한 가상함수만 사용할 수 있다는 건데
그렇다면 파생클래스만의 독단적인 함수를 쓰려면 어떻게 해야하는가?
=>
인스턴스를 담는 변수의 타입을 부모클래스로 하지 않고 파생클래스로 하면 되는 듯.
부모를 상속해서 부모의 가상함수와 override를 통해 코드를 재사용하고 싶고
부모가 선언한 가상함수 이외에도 자식만의 특징적인 기능이나 함수를 더 추가하고 싶다면
인스턴스를 담는 변수의 타입을 부모클래스로 하지 않고 파생클래스로 하면 되는 것 같다.
(ex. Unit gameObject = new Vulture(); 가 아닌 Vulture gameObject = new Vulture();)
+가상함수를 사용하는 이유?
그저 비슷한 일을 하는 함수들의 이름이 동일한 데서 오는 이점 때문일 것 같다.
그리고 같은 동작을 하는 코드 부분은 생략할 수 있음.
그리고 하다가 느낀건데
프로그램 메인 함수에서 모든 클래스를 다루고 조작하는 것 또한 싱글턴 패턴인가?
이것도 이따 낮에 알아봐야겠다.
이하 수업 내용------------------------
'C# > 수업 내용' 카테고리의 다른 글
22.01.03 인벤토리에서 아이템 꺼내오기, 다시 넣기 (0) | 2022.01.03 |
---|---|
22.01.01 캐리어 (2) | 2022.01.01 |
21.12.30 부대 관리 & 드랍쉽 (0) | 2021.12.30 |
21.12.29 아이템 & 인벤토리 (0) | 2021.12.30 |
21.12.27 마린 vs 저글링 (0) | 2021.12.28 |