sealed
클래스나 메서드를 상속하지 못하도록 하여 오버라이딩을 방지한다.
sealed로 선언된 클래스는 다른 클래스에서 상속받을 수 없으며 메서드의 경우 해당 클래스에서만 사용이 가능하다.
sealed 클래스 선언
sealed class MyClass
{
//
}
이 클래스는 다른 클래스에서 상속받을 수 없으며 이 클래스를 파생 클래스로도 사용할 수 없다.
sealed 메서드 선언
class MyBaseClass
{
public virtual void MyMethod() {}
}
class MyDerivedClass : MyBaseClass
{
public sealed override void MyMethod() {}
}
MyMethod 함수는 MyDerivedClass에서 오버라이딩되고 이후 sealed로 선언된다. 따라서 MyDerivedClass를 상속하는 다른 파생 클래스에서 MyMethod를 오버라이딩할 수 없게 된다.
일반적으로 클래스를 마지막으로 봉할 때 사용하는 키워드로 최종적인 구현을 제공하는 클래스에서 사용된다.
파생되어 추가되는 내용이 필요하지 않게 하거나 해당 기능을 변경하거나 확장하려는 경우를 방지해 클래스의 안정성을 보장한다.
예를 들어 C#의 String 클래스의 경우 sealed로 선언되어 있어 개발자가 해당 클래스를 상속하거나 수정할 수 없도록 만들어 클래스의 안정성을 보장하도록 한다.
728x90
반응형
'Program Language > C#' 카테고리의 다른 글
C# 안전하지 않은 키워드 : unsafe (0) | 2023.04.25 |
---|---|
C# 정적 키워드 : static (0) | 2023.04.25 |
C# 읽기 전용 키워드 : readonly (0) | 2023.03.30 |
C# 코드 분할 키워드 : partial (0) | 2023.03.30 |
C# 가상 함수/재정의 키워드 : virtual/override (0) | 2023.03.30 |