Kan Java abstrakte klas 'n konstruktor hê?
Kan Java abstrakte klas 'n konstruktor hê?

Video: Kan Java abstrakte klas 'n konstruktor hê?

Video: Kan Java abstrakte klas 'n konstruktor hê?
Video: Публичное собеседование: Junior Java Developer. Пример, как происходит защита проекта после курсов. 2024, April
Anonim

Ja, 'n abstrakte klas kan hê a konstruktor in Java . Jy kan verskaf óf uitdruklik a konstruktor aan abstrakte klas of as jy dit nie doen nie, die samesteller sal voeg verstek by konstruktor van geen argument in abstrakte klas . Dit is waar vir almal klasse en dit geld ook vir 'n abstrakte klas.

Gevolglik, kan 'n konstruktor abstrak in Java wees?

Jy kan het nie 'n abstrakte konstruktor , soos abstrak beteken dat jy die implementering daarvoor op 'n sekere tydstip in jou subklas moet verskaf. Maar jy kan nie ignoreer nie konstruktor . Daar sal geen sin om 'n te hê nie abstrakte konstruktor : jy sal bel altyd die konstruktor van kinderklas en nie van basisklas nie.

Net so, hoe noem jy 'n abstrakte klaskonstruktor? Jy kan 'n definieer konstruktor in 'n abstrakte klas , maar jy kan nie daardie voorwerp konstrueer nie. Konkrete sub- klasse kan (en moet) bel een van die konstrukteurs gedefinieer in die abstrak ouer klas . Jy kan nie bel an abstrakte klas konstruktor met 'n klas instansie skeppingsuitdrukking, d.w.s.

Net so, vra mense, hoekom het 'n abstrakte klas 'n konstruktor?

A konstruktor in Java "bou" nie eintlik die voorwerp nie, dit word gebruik om velde te inisialiseer. Stel jou voor dat jou abstrakte klas het velde x en y, en dat jy altyd wil hê dat hulle op 'n sekere manier geïnisialiseer moet word, maak nie saak watter werklike konkrete subklas uiteindelik geskep word nie.

Kan abstrakte klas voorwerpe in Java hê?

Want dit is abstrak en 'n voorwerp is konkreet. Nee, ontwerpers het nie 'n manier verskaf nie. Omdat 'n abstrakte klas is 'n onvolledige klas (onvolledig in die sin wat dit bevat abstrak metodes sonder liggaam en uitset) kan ons nie 'n instansie skep of voorwerp ; dieselfde manier wat jy sê vir 'n koppelvlak.

Aanbeveel: