지정자 sealed를 메서드 앞에 붙이면 이 메서는 봉인되며, 더 이상 재정의가 불가능
하다. 봉인되었다는 뜻은 기능이 확정되어 이후의 파생클래스에서는 호출만 할수 있고 재정의는 할 수 없다는 뜻이 된다.
sealed 지정자는 중간 단계의 클래스에서만 사용되며 최상위의 부모클래스에는 키워를 사용할 필요가 없다. 가상으로 선언된 메서드만 재정의 대상이며 가상이 아닌 메서드는 암시적으로 봉인된 것이다.
중간 단계의 클래스가 자신이 마지막으로 재정의하고 싶을 때만 sealed지정자를 사용한다. 그래서 sealed지정자는 항상 override지정자와 함께 사용하고 있다
using System;
public class 봉인클래스
{
public static void Main(string[] args)
{
Sonata s = new Sonata();
}
}
using System;
public interface IIso { }
public interface IKs { }
public abstract class Car { }
public class HD : Car, IIso, IKs
{
}
public sealed class Sonata : HD // 더이상 상속받지 못하도록 함
{
}
public class Other : Sonata // Sonata Error
{
}
'.Net Project > .Net 3.5 Sp1' 카테고리의 다른 글
79장 인터페이스(Interface) (0) | 2009.08.15 |
---|---|
78장 추상클래스(Abstract) (0) | 2009.08.15 |
76장 메서드 오버라이딩(Tostring) (0) | 2009.08.15 |
75장 클래스의 부모접근 (0) | 2009.08.15 |
74장 상속관련 (0) | 2009.08.15 |