Může mít abstraktní třída Java konstruktor?
Může mít abstraktní třída Java konstruktor?

Video: Může mít abstraktní třída Java konstruktor?

Video: Může mít abstraktní třída Java konstruktor?
Video: Java - abstract class have constructor, private constructor - How to call the same 2024, Duben
Anonim

Ano, an abstraktní třída může mít A konstruktér v Jáva . Vy umět buď výslovně uveďte a konstruktér na abstraktní třída nebo pokud ne, kompilátor vůle přidat výchozí konstruktér bez argumentů abstraktní třída . To platí pro všechny třídy a platí to i pro an abstraktní třída.

Může tedy být konstruktor v Javě abstraktní?

Vy umět nemít abstraktní konstruktér , tak jako abstraktní znamená, že pro to musíte poskytnout implementaci v určitém okamžiku ve vaší podtřídě. Ale nemůžete to přepsat konstruktér . Tam vůle nemá smysl mít abstraktní konstruktér : Vy vůle vždy zavolejte konstruktér třídy dítěte a nikoli základní třídy.

Podobně, jak zavoláte konstruktor abstraktní třídy? Můžete definovat a konstruktér v an abstraktní třída , ale nemůžete tento objekt postavit. Nicméně betonové pod- třídy může (a musí) volání jeden z konstruktéři definovaný v abstraktní rodič třída . Nemůžeš volání an konstruktor abstraktní třídy s třída výraz vytvoření instance, tzn.

Podobně se lidé ptají, proč má abstraktní třída konstruktor?

A konstruktér v Javě objekt ve skutečnosti „nestaví“, používá se k inicializaci polí. Představte si, že vaše abstraktní třída má pole x a y a že vždy chcete, aby byla inicializována určitým způsobem, bez ohledu na to, jaká konkrétní konkrétní podtřída se nakonec vytvoří.

Může mít abstraktní třída objekty v Javě?

Protože to je abstraktní a objekt je beton. Ne, návrháři neposkytli způsob. Protože an abstraktní třída je neúplný třída (neúplné ve smyslu, který obsahuje abstraktní metody bez těla a výstupu) nemůžeme vytvořit instanci resp objekt ; stejným způsobem říkáte pro rozhraní.

Doporučuje: