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() 순서로 호출이 이루어짐