클래스를 다른 클래스로 상속하기 위한 방법은 무엇인가요?
상속
class Parent1 {}
class parent2 {}
class Child : Parent1, Parent2 {} // 다중 상속 불가
- 다중 상속은 불가능하지만, 상속이 여러 계층을 가질 수는 있음
class Parent {}
class Child1 : Parent {}
class Child2 : Child1 {}
virtual
- 부모 클래스의 메서드가
virtual을 활용해 선언된 경우, 자식 클래스에서는 해당 메서드를 override하여 구체화할 수 있음
- 여기서 SOLID 원칙의 리스코프 치환 원칙을 지키기 위해서는 기존의
base.[메서드 이름]();을 유지하는 것이 필요함
abstract
- 부모 클래스가
abstract 한정자를 가지고, 어떤 메서드나 프로퍼티가 abstract 한정자를 가지고 있다면 abstract가 아닌 자식 클래스에서는 해당 요소를 구현해야함
다형성과의 관계
- 위 두 요소를 활용하면 객체 지향을 통해 얻을 수 있는 장점인 다형성을 구현할 수 있음