Статические и герметичные классовые различия

  • Есть ли класс, который будет реализован в статическом классе? означает:

    static class ABC : Anyclass
    
  • Есть ли класс, который может быть унаследован как в закрытом классе, так и в статическом классе?
    означает:

    static class ABC : AClass {}
    

    и

    sealed class ABC : AClass {}
    

Могу ли я ошибиться в некоторой степени?

Ответ 1

Это может помочь вам:

+-------------------------+---+--------+--------+--------+----------+
|       Class Type        |   | normal | static | sealed | abstract |
+-------------------------+---+--------+--------+--------+----------+
| Can be instantiated     | : | YES    | NO     | YES    | NO       |
| Can be inherited        | : | YES    | NO     | NO     | YES      |
| Can inherit from others | : | YES    | NO     | YES    | YES      |
+-------------------------+---+--------+--------+--------+----------+

Ответ 2

Простыми словами

Статический класс

Класс может быть объявлен статическим, указывая, что он содержит только статические элементы. Невозможно создать экземпляры статического класса с использованием нового ключевого слова. Статические классы загружаются автоматически с помощью среды CLR для среды .NET Framework, когда программа или пространство имен, содержащее класс.

Запечатанный класс

Запечатанный класс нельзя использовать в качестве базового класса. Запечатанные классы прежде всего, для предотвращения деривации. Потому что они никогда не могут быть использованы как базовый класс, некоторые оптимизации во время выполнения могут сделать вызов закрытым членов класса немного быстрее.

Ответ 3

Вы можете позволить классу sealed наследовать от другого класса, но вы не можете наследовать от класса sealed:

sealed class MySealedClass : BaseClass // is ok
class MyOtherClass : MySealedClass     // won't compile

Класс A static не может наследовать другие классы.

Ответ 4

простой ответ. Запечатанный класс нельзя использовать (as) базовый класс.

Я пытаюсь показать вам, что Sealed Class является производным классом в коде ниже

 public sealed class SealedClass : ClassBase
{
    public override void Print()
    {
        base.Print();
    }
}

и еще одна закрытая функция - это только доступ с экземпляром. Для примера

 class Program
{
    static void Main(string[] args)
    {
        SealedClass objSeald = new SealedClass();
        objSeald.Name = "Amin Saadati";
        objSeald.Print();

    }
}

Запечатанные классы используются для ограничения функции наследования объектно-ориентированного программирования. Как только класс определяется как закрытый класс, класс не может быть унаследован. В С# запечатанный модификатор используется для определения класса как запечатанного. В Visual Basic.NET ключевое слово NotInheritable служит для герметизации.

Ответ 5

1 - Нет, вы не можете реализовать статический класс.

2 - Нет, вы не можете унаследовать от статического или закрытого класса