Derived Class
- OOP 프로그래밍에서는 물려받는 클래스 (파생 클래스)가 물려줄 클래스(기반 클래스)를 지정 ```csharp class 기반_클래스 { / 멤버 선언 }
class 파생_클래스 : 기반_클래스 { / 아무 멤버를 선언하지 않아도 기반 클래스의 모든 것을 물려받음 / 단, private 으로 선언된 멤버는 예외 }
- 파생 클래스는 자신만의 고유한 멤버 외에서 기반 클래스로부터 물려받은 멤버를 가짐
- 파생 클래스가 기반 클래스 위에 새로운 멤버를 얹어서 만들기 때문
![](https://i.imgur.com/JGidYIY.jpg)
- 호출 순서
1. 객체 생성시 기반 클래스의 생성자를 호출
2. 객체가 소멸될 때는 반대의 순서 (파생 클래스 -> 기반 클래스) 종료자를 호출
```csharp
public class Base
{
public Base()
{
Console.WriteLine("Base()");
}
~Base()
{
Console.WriteLine("~Base()");
}
}
class Derived : Base
{
public Derived()
{
Console.WriteLine("Derived()");
}
~Derived()
{
Console.WriteLine("~Derived()");
}
}
class MainApp
{
static void Main()
{
Derived derived = new Derived();
}
}
- Base() => Derived() => ~Derived() => ~Base() 순서로 호출이 이루어짐