구현 클래스와 추상 클래스
추상 클래스가 아닌 부모 클래스를 구현(concrete) 클래스라고 합니다. 구현 클래스는 추상 클래스와 달리 다른 클래스의 부모 클래스가 될 수도 있고, 인스턴스화가 될 수도 있습니다. 이와 달리 추상 클래스는 다른 클래스의 부모 클래스로만 사용 가능하며, 인스턴스화될 수는 없습니다. 추상 클래스는 하나 이상의 추상 멤버를 가질 수 있습니다.
추상 클래스를 만들고 상속하기
추상 클래스를 만들고 이를 상속하는 예제를 살펴보겠습니다. 다음 내용을 입력한 후 실행해 보세요.
> abstract class GeneralManager //부장님 클래스 생성 . { . public abstract void SayHumor(); //메서드 본문 생략 . } > > class Person : GeneralManager //부장님 클래스를 상속하는 사람 클래스 생성 . { . public override void SayHumor() . { . Console.WriteLine("1+1은? 노가다!"); . } . } > > var person = new Person(); > person.SayHumor(); 1+1은? 노가다!
현실 세계 부장님의 아재 개그를 표현해 보았습니다. GeneralManager 클래스를 상속하는 모든 Person 클래스는 SayHumor() 메서드를 강제로 구현해야 합니다.