Sealed
단어 뜻 그대로 상속으로부터 '봉인' 시키는걸 말한다. 메서드 앞에 놓이면 메서드 상속을 막고, 클래스 앞에 놓이면 클래스 상속을 막는다는 이야기.
* Sealed Class
아래와 같은 코드에서는 A를 상속받을 수 는 있지만 B를 상속받을 수는 없다.
class A {}
sealed class B : A {}
* Sealed Method
Human을 상속받은 Parent가 Eat에 Sealed 한정자를 붙였으므로 Child 클래스에서는 상속이 불가능하다.
public abstract class Human
{
public double Age { get; set; }
public virtual void Work()
{
Console.WriteLine("Work hard");
}
public virtual void Sleep()
{
Console.WriteLine("Sleep deeply");
}
public abstract void Play();
public abstract void Eat();
}
public class Parent : Human
{
public sealed override void Eat()
{
Console.WriteLine("Eat pizza");
}
public override void Play()
{
Console.WriteLine("Play hard");
}
public override void Sleep()
{
base.Sleep();
}
public override void Work()
{
base.Work();
}
}
public class Child : Parent
{
//Eat는 상속 불가
public override void Play()
{
base.Play();
}
public override void Sleep()
{
base.Sleep();
}
public override void Work()
{
base.Work();
}
}
'개발괴발🐾 > C#' 카테고리의 다른 글
[Fody/Costura] C# Winform 프로젝트를 단일 실행파일로 빌드하기 (1) | 2024.05.10 |
---|---|
[Log4net] C#에서 외부 코드를 참조하여 로그 기능 사용하기 (0) | 2024.03.21 |
[C#] POCO 가 뭐야? (0) | 2024.03.08 |
[Socket] 요청<->응답 바이트 배열 변환 (0) | 2024.03.07 |