21.12.28 벌쳐 vs 질럿

2021. 12. 29. 01:01C#/수업 내용

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