final class AbsTest {}
class BTest extends AbsTest {}
Как предотвратить создание подкласса (ов) без использования final
ключевого слова?Как избежать подкласса без использования конечного ключевого слова в Java
final class AbsTest {}
class BTest extends AbsTest {}
Как предотвратить создание подкласса (ов) без использования final
ключевого слова?Как избежать подкласса без использования конечного ключевого слова в Java
Вот несколько вариантов
чек положить в конструктор для класса:
если (! This.getClass() = abc.class) { бросить новый RuntimeException ("Подклассы не допускается"); }
Ноfinal
предоставляется решить такую проблему, я должен сказать,так лучше пойти сfinal
!!!
@Sunjay: Спасибо – PANKAJGSINGH
В коде выше, как предотвратить создание подкласса без использования «окончательного» ключевого слова
Вы можете объявить частные конструктор, чтобы избежать создания объекта.
private AbsTest() {
}
Это не сработает, если оба являются внутренними классами, и они имеют один и тот же родительский элемент, в этом случае использование «final» является единственным вариант. – Jack
Итак ... почему вы пытаетесь это сделать? как указано в ответах до сих пор, существуют способы для определенных условий, но окончательный был создан по какой-то причине. – Foon