Може ли Java абстрактният клас да има конструктор?
Може ли Java абстрактният клас да има конструктор?

Видео: Може ли Java абстрактният клас да има конструктор?

Видео: Може ли Java абстрактният клас да има конструктор?
Видео: Реальные примеры Spring AOP внутри самого Spring и за его пределами [Путешествие по Spring AOP — Час 2024, Може
Anonim

Да, ан абстрактен клас може да има а конструктор в Java . Вие мога или изрично предоставят a конструктор да се абстрактен клас или ако не го направите, компилаторът ще добавяне по подразбиране конструктор без аргумент в абстрактен клас . Това е вярно за всички класове и се отнася и за an абстрактен клас.

Следователно, може ли конструкторът да бъде абстрактен в Java?

Вие мога нямам абстрактен конструктор , като абстрактно означава, че трябва да предоставите реализацията за това в даден момент от вашия подклас. Но не можете да отмените конструктор . Там ще няма смисъл да имаш абстрактен конструктор : Вие ще винаги се обадете на конструктор от детски клас, а не от базов клас.

По същия начин, как се нарича конструктор на абстрактен клас? Можете да дефинирате a конструктор в абстрактен клас , но не можете да конструирате този обект. Въпреки това, бетонната под- класове може (и трябва) повикване един от конструктори дефинирани в абстрактно родител клас . не можеш повикване ан конструктор на абстрактен клас с клас израз за създаване на инстанция, т.е.

По същия начин хората питат защо един абстрактен клас има конструктор?

А конструктор в Java всъщност не "изгражда" обекта, той се използва за инициализиране на полета. Представете си, че вашият абстрактен клас има полета x и y и че винаги искате те да бъдат инициализирани по определен начин, без значение какъв действителен конкретен подклас е създаден в крайна сметка.

Може ли абстрактният клас да има обекти в Java?

Защото е абстрактно и ан обект е бетон. Не, дизайнерите не са предоставили начин. Защото ан абстрактен клас е непълен клас (непълен в смисъла, който съдържа абстрактно методи без тяло и изход) не можем да създадем екземпляр или обект ; по същия начин, който казвате за интерфейс.

Препоръчано: