Как предотвратить унаследованные экземпляры классов - PullRequest
0 голосов
/ 11 июня 2011

Я хочу заставить любой класс не создавать новый экземпляр, если он наследует определенный базовый класс, так как этот базовый класс должен выглядеть?

Ответы [ 5 ]

1 голос
/ 11 июня 2011

Вы хотите запечатать свой базовый класс.

public sealed class BaseClass
{
    public BaseClass(){};
}



public class SubClass : BaseClass
{
    public SubClass(){};
}

Это вызовет ошибку компилятора, потому что вы не можете наследовать от запечатанной базы.

1 голос
/ 11 июня 2011

Следующий код находится в Java.просто чтобы дать вам Пример

Базовый класс имеет исключение для конструктора.

public class BaseClass 
{
    public BaseClass()
    {
        throw new AssertionError();
    }
}

Дочерний класс, расширяющий базовый класс, но если вы создадите его объект, он даст вамисключение.

public class MainClass extends BaseClass 
{
    public MainClass()
    {

    }

    public static void main(String[] args) {
        MainClass c = new MainClass();
    }
}
0 голосов
/ 11 июня 2011

Вы не можете сделать это.Пожалуйста, укажите, почему вы хотите это сделать.

0 голосов
/ 11 июня 2011

вы можете объявить базовый класс как const - так другие классы не смогут его расширить.

0 голосов
/ 11 июня 2011

Вы не можете указать, что в базовом классе любой производный класс самореактивен, если он хочет предоставить возможность быть производным, чем вы ничего не можете с этим поделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...