-
정적 클래스로 구현되는 클래스가 있습니까? 방법:
static class ABC : Anyclass
-
봉인 클래스와 정적 클래스 모두에서 상속 될 수있는 클래스가 있습니까?
방법:static class ABC : AClass {}
과
sealed class ABC : AClass {}
어느 정도 틀릴 수 있습니까?
답변
이것은 당신을 도울 수 있습니다 :
+--------------+---+-------------------------+------------------+---------------------+
| Class Type | | Can inherit from others | Can be inherited | Can be instantiated |
|--------------|---|-------------------------+------------------+---------------------+
| normal | : | YES | YES | YES |
| abstract | : | YES | YES | NO |
| sealed | : | YES | NO | YES |
| static | : | NO | NO | NO |
+--------------+---+-------------------------+------------------+---------------------+
답변
간단한 말로
정적 클래스
정적 멤버 만 포함하고 있음을 나타내는 클래스를 static으로 선언 할 수 있습니다. new 키워드를 사용하여 정적 클래스의 인스턴스를 작성할 수 없습니다. 정적 클래스는 클래스가 포함 된 프로그램 또는 네임 스페이스가로드 될 때 .NET Framework CLR (공용 언어 런타임)에 의해 자동으로로드됩니다.
봉인 된 클래스
봉인 클래스는 기본 클래스로 사용할 수 없습니다. 봉인 클래스는 주로 파생을 방지하는 데 사용됩니다. 기본 클래스로 사용할 수 없기 때문에 일부 런타임 최적화는 봉인 클래스 멤버를 약간 빠르게 호출 할 수 있습니다.
답변
당신은 할 수 있습니다 sealed
다른 클래스에서 클래스 상속을,하지만 당신은 상속 할 수 없습니다 에서sealed
클래스 :
sealed class MySealedClass : BaseClass // is ok
class MyOtherClass : MySealedClass // won't compile
static
클래스는 다른 클래스에서 상속 할 수 없습니다.
답변
두 가지를 단순히 다음과 같이 구별 할 수 있습니다.
Sealed Class | Static Class
--------------------------|-------------------------
it can inherit From other | it cannot inherit From other
classes but cannot be | classes as well as cannot be
inherited | inherited
답변
간단한 대답은 봉인 된 클래스를 기본 클래스로 사용할 수 없다는 것 입니다.
봉인 클래스가 아래 코드에서 파생 된 클래스임을 보여 주려고합니다.
public sealed class SealedClass : ClassBase
{
public override void Print()
{
base.Print();
}
}
또 다른 봉인 된 기능은 인스턴스를 통해서만 액세스 할 수 있습니다 (상속 할 수는 없음).
class Program
{
static void Main(string[] args)
{
SealedClass objSeald = new SealedClass();
objSeald.Name = "Blah blah balh";
objSeald.Print();
}
}
답변
봉인 된 수업 :
- 인스턴스를 만들 수 있지만 상속 할 수는 없습니다
- 정적 멤버와 비 정적 멤버를 포함 할 수 있습니다.
정적 클래스 :
- 인스턴스를 만들거나 상속 할 수 없습니다
- 정적 멤버 만 가질 수 있습니다.
답변
1-아니요, 정적 클래스를 구현할 수 없습니다.
2-아니요, 정적 또는 봉인 클래스에서 상속받을 수 없습니다.