[C#] Sealed
반응형
    
    
    
  다른 클래스가 해당클래스에서 상속하지 못하도록 하는 한정자인 Sealed는
함수, 속성, 클래스에 모두 사용 가능하다.
해당 한정자가 있는 경우 더이상 상속받지 못한다.
예를들어 게임에서 스킬트리를 만든다고 가정해보자
// 매우 간단한 스킬 클래스를 만든다고 해보자
public abstract class Skills
{
	public double Damege;  //데미지
    public double Range;   // 사정거리
    public Elements Element; //속성
    public virtual void Shooting();
}
//스킬클래스를 상속받는 속성 스킬들이 있다.
public class FireSkills : Skills
{
	public double Damege ;
    public double Range;
    public sealed Elements Element = Elements.Fire
    public virtual void Shooting();
}
public class IceSkills : Skills
{
	public double Damege ;
    public double Range;
    public sealed Elements Element = Elements.Ice
    public virtual void Shooting();
}
public class LeafSkills : Skills
{
	public double Damege ;
    public double Range;
    public sealed Elements Element = Elements.Leaf
    public virtual void Shooting();
}
// 1번의 상속을 거치면서 속성스킬을 만들엇고 속성값을 더이상 상속하고 재정의 할 수 없게 sealed 한정자를 붙였다.
// 여기서 한번의 상속을 더 거쳐보자.
public class FireShootingSkills : FireSkills 
{
	public double Damege ;
    public double Range ;
    public sealed void Shooting(){
    	//쏜다.
    }
}
public class FireAreaSkills : FireSkills 
{
	public double Damege ;
    public double Range ;
    public sealed void Shooting(){
    	//나타난다.
    }
}
// 이런식으로 불을 던지는 스킬은 던지는 것만 가능하도록
// 불이 나타나는 스킬은 나타나기만 하도록 생성 해 줄수 있다.
이런식으로 sealed는 더이상 재정의 할 수 없는 함수, 속성, 클래스를 정의한다..
반응형
    
    
    
  'Study > C#' 카테고리의 다른 글
| [C#] Visual Studio에서 Coding Covention 적용하는 방법 (0) | 2022.06.10 | 
|---|---|
| [C#] Oracle Wallet 사용해 Oracle Cloud Connection (11) | 2022.04.21 | 
| [C#] C#에서 POST방식으로 특정 URL로 데이터 전송 (0) | 2022.04.07 | 
| [C#] C#에서 DataTable 을 JSON으로 변경 (0) | 2022.04.07 | 
| [C#] Oracle 연결해서 써먹기 (0) | 2021.04.23 | 
										
									
										
									
										
									
										
									
댓글