Существуют ли веские причины для открытого конструктора абстрактного класса

Невозможно создать объект, напрямую вызвав конструктор абстрактного класса . Конструктор абстрактного класса может быть вызван только из производного класса. Поэтому мне кажется , что конструкторы абстрактного класса должны быть либо защищенными , либо закрытыми для пакета (последнее для необычных случаев ограничения использования конструктора производными классами внутри пакета. ). Тем не менее, Java позволяет конструктору абстрактного класса быть общедоступным .

Существуют ли какие-либо обстоятельства, при которых полезно объявлять конструктор 11110315] абстрактный класс должен быть общедоступным , а не защищенным или частным пакетом?

Это не совсем дубликат вопроса « Конструктор абстрактного класса модификатор доступа ": очевидно, что вы можете объявить конструктор общедоступным ; Я хочу знать, есть ли веская причина для этого. Мне кажется, что нет. Я вижу, что C # имеет похожую особенность .

38
задан Community 23 May 2017 в 12:13
поделиться