상속 2

[Unity/C#] 상속과 클래스 구조

상속을 예전에 공부만 해두고 잘 활용하지 않았기 때문에 의문점이 생겼다. 더보기 1. PlayerBase를 상속하는 StagePlayer를 GameManager에서 PlayerBase 변수로 받아도 StagePlayer에서 Override한 기능이 제대로 작동하는가? 2. StagePlayer에서 override하지 않은 기능도 제 때에 같은 기능으로 수행하는가? 3. PlayerBase의 기능을 override할 때 StagePlayer와 TutorialPlayer에서 Base의 기능 수행 시점을 조절할 수 있는가? 이에 대한 답을 모르는 채로 무작정 게임에서 이 디자인을 적용하고자 하면 기능이 많이 꼬일 수도 있을 것 같아 샘플 프로젝트에서 간단히 테스트해보았다. Player에는 PlayerBase를..

SW Programming/C# 2023.03.29

[C#] 상속과 다형성

상속 다른 클래스의 멤버를 이어받는 기능으로, 기본 클래스와 파생클래스가 1:N의 관계를 갖는다. 파생클래스의 객체는 기본 클래스의 private을 제외한 멤버를 사용할 수 있다. 기본 클래스(부모 클래스): 상속하는 바탕이 되는 클래스 파생 클래스(자식 클래스): 상속하여 만든 클래스 sealed: 다른 클래스에서 상속 불가능하도록 하는 키워드. virtual메서드를 override한 메소드에도 지정 가능 base : 상속 원본에 인수를 전달하는 키워드 -> 기본 클래스의 인수가 있는 생성자를 호출 base 사용하지 않으면: 상속 원본의 인수가 없는 생성자 호출 이름의 은폐가 일어날 때, 은폐된 기본 클래스 멤버를 파생 클래스 안에서 사용할 때에도 이용 -> base.a: 기본클래스 필드의 a usin..

SW Programming/C# 2022.06.01