지정자 sealed를 메소드 앞에 붙이면 이 메소드는 봉인되며 더 이상 재정의 할수 없다
부모가 virtual 지정자로 가상 선언해 놓은 메소드는 자식 클래스에서 override 지정자를 붙여 재정의가능하며
이 메소드는 계속 가상이므로 이후 파생되는 클래스에서도 자유롭게 재정의할수 있다
하지만 중간 단계에서 메소드를 봉인해 버리면 이후의 재정의가 금지된다
가상으로 선언된 메소드만 재정의 대상이며 가상이 아닌 메소드느 암시적으로 봉인
중간 단계의 클래스가 자신이 마지막으로 재정의하고 싶을 때만 sealed 지정자 사용
Base 에서 Message 가상 선언, 파생 클래스들은 이 메소드를 상속받아 재정의가능
Derived에서 sealed 지정자를 붙여 봉인했으므로 더이상 재정의 불가
Third에서 Message를 재정의하지 못하고 new 지정자를 붙여 새로 만든다
'Study > C#' 카테고리의 다른 글
C# 인터페이스 - 1. 인터페이스 (0) | 2012.01.04 |
---|---|
C# 클래스 상속 - 3. 정적 클래스 (0) | 2012.01.04 |
C# 클래스 상속 - 3. 추상 클래스 (0) | 2012.01.03 |
C# 클래스 상속 - 2. 재정의 (다형성) (0) | 2011.12.29 |
C# 클래스 상속 - 2. 재정의 (메소드 재정의) (0) | 2011.12.29 |