Kan Java abstrakt klasse have konstruktør?
Kan Java abstrakt klasse have konstruktør?

Video: Kan Java abstrakt klasse have konstruktør?

Video: Kan Java abstrakt klasse have konstruktør?
Video: Java - abstract class have constructor, private constructor - How to call the same 2024, Kan
Anonim

Ja, en abstrakt klasse kan have -en konstruktør i Java . Du kan enten udtrykkeligt angive en konstruktør til abstrakt klasse eller hvis du ikke gør det, compileren vilje tilføje standard konstruktør uden argument i abstrakt klasse . Dette gælder for alle klasser og det gælder også for en abstrakt klasse.

Kan en konstruktør derfor være abstrakt i Java?

Du kan ikke har en abstrakt konstruktør , som abstrakt betyder, at du skal levere implementeringen til det på et tidspunkt i din underklasse. Men du kan ikke tilsidesætte konstruktør . Der vilje ingen mening i at have en abstrakt konstruktør : Dig vilje ring altid til konstruktør af børneklasse og ikke af basisklasse.

På samme måde, hvordan kalder man en abstrakt klassekonstruktør? Du kan definere en konstruktør i en abstrakt klasse , men du kan ikke konstruere det objekt. Dog konkrete under- klasser kan (og skal) opkald en af de konstruktører defineret i abstrakt forælder klasse . Det kan du ikke opkald en abstrakt klassekonstruktør med en klasse instansskabelsesudtryk, dvs.

På samme måde spørger folk, hvorfor har en abstrakt klasse en konstruktør?

EN konstruktør i Java "bygger" ikke objektet faktisk, det bruges til at initialisere felter. Forestil dig, at din abstrakt klasse har felterne x og y, og at du altid ønsker, at de skal initialiseres på en bestemt måde, uanset hvilken konkret konkret underklasse, der til sidst oprettes.

Kan abstrakt klasse have objekter i Java?

Fordi det er abstrakt og en objekt er konkret. Nej, designere gav ikke en måde. Fordi en abstrakt klasse er en ufuldstændig klasse (ufuldstændig i den forstand, det indeholder abstrakt metoder uden krop og output) kan vi ikke oprette en instans eller objekt ; på samme måde som du siger for en grænseflade.

Anbefalede: