2017-12-20 5 views
1

나는 이것이 덜 의문의 여지가 있음을 알고 있지만 봉인 된 클래스가 인스턴스를 만드는 이유를 혼란스럽게 생각합니다. 여기그 인스턴스를 만드는 C# 봉인 된 클래스

public sealed class SealedClass1 
{ 
    static SealedClass1() 
    { 
    } 

    public string GetmeassageFromSealed(string mesage) 
    { 
     return mesage; 
    } 
} 

나는 또한 다른 클래스에서 상속 할 수 있습니다, 봉인 클래스는 를 인스턴스화 할 수 있습니다 개인

public sealed class SealedClass1 
     { 
      static SealedClass1() 
      { 

      } 
     private Singleton() 
      { 

      } 
      public string GetmeassageFromSealed(string mesage) 
      { 
       return mesage; 
      } 
     } 
+0

이 링크보기 https://stackoverflow.com/q/16244430/1793811 –

+1

봉인이란 사용자가 상속 할 수 없다는 의미입니다. 그것은 차이점입니다. 인스턴스를 생성 할 수는 있지만 상속 할 수는 없습니다. –

+0

기술적으로 정적 생성자가 있습니다. 아무데도 실제로 그 자체의 인스턴스를 만들지 않습니다 –

답변

2

C#의 sealed 키워드는 해당 클래스에서 상속받을 수있는 클래스가 없음을 의미합니다.

이 시나리오가 그래서 경우 :

public class Test { } 

다음은 당신이 sealed 키워드, 컴파일하려고 오류가 발생와 컴파일러를 추가하는 즉시, 그러나

public class NewTest: Test { } 

유효을 그 도서관.

public sealed class Test { } 

public class NewTest: Test { } 

이 봉인 클래스 '테스트'에서 상속 할 수 없습니다

'NewTest'를 던질 것입니다.

간단히 말해서 sealed 키워드는 상속이 없음을 확인하기 위해 컴파일 타임 검사입니다.

+0

고맙습니다 이것은 또한 동시에 개인 생성자를 만들 때 그 workin 또한 일하고 있습니다 –

1

로 내 생성자를 장식하지만 다른 클래스에 의해 상속 될 수 없습니다.

+0

https :이 부분을 참고하십시오. //dotnetfiddle.net/ –

+0

무엇을 참조해야합니까? –

+0

https://dotnetfiddle.net/Widget/Preview?url=/Widget/Preview?url=/Widget/i4PmYr go –

관련 문제