Какие классы в C# нельзя наследовать?

137
18 сентября 2019, 14:10

Запечатанные классы точно нельзя наследовать. Есть ли еще какие-то варианты?

Answer 1

Нельзя наследовать:

  1. запечатанные классы (помеченные модификатором sealed)
  2. классы с толькоprivate конструктором. За исключением подобного примера:

    namespace ConsoleCS
    {
      using System;
      public class Program
    {
    public static void Main(string[] args)
    {
        BaseClass.DerivedClass dc = new BaseClass.DerivedClass();
        Console.WriteLine("\nDone.");
        Console.ReadLine();
    }
    public abstract class BaseClass
    {
        private BaseClass()
        {
            Console.WriteLine("base ctor");
        }
        public class DerivedClass : BaseClass
        {
            public DerivedClass() 
            {
                Console.WriteLine("derived ctor");
            }
        }
    } }}
    

    Имеется в виду, что наследовать можно, если класс вложенный. В других ситуациях не выйдет.

  3. статические классы (помеченные модификатором static)

READ ALSO
Работа с Epub при помощи EpubSharp C#

Работа с Epub при помощи EpubSharp C#

Использую бибиблиотеку EpubSharp для того, чтобы сохранить имеющийся текст в форматеepub

120
Крипто про. Видимая подпись PDF

Крипто про. Видимая подпись PDF

Небольшая проблема с созданием ЭЦП подписи по Госту с использование сертификата

148
Не меняются параметры из php.ini

Не меняются параметры из php.ini

суть проблемы в том, что пытаюсь изменить файл phpini

134