Kan en underklasse kalde forælderens klassekonstruktør?
Kan en underklasse kalde forælderens klassekonstruktør?

Video: Kan en underklasse kalde forælderens klassekonstruktør?

Video: Kan en underklasse kalde forælderens klassekonstruktør?
Video: Java - Calling Constructors During Inheritance 2024, November
Anonim

Nej a underklasse kan ikke arve konstruktører af sin superklasse. Konstruktører er særlige funktionsmedlemmer af en klasse i, at de ikke er arvet af underklasse . Konstruktører bruges til at give en gyldig tilstand for et objekt ved oprettelsen.

I denne henseende, er konstruktører nedarvet, kan en underklasse kalde forælderens klassekonstruktør?

"At påberåbe sig" forældreklassekonstruktør i barn klasse du har altid brug for "super" søgeord. Konstruktører er ikke medlemmer, så det er de ikke nedarvet ved underklasser , men konstruktør af superklassen kan påberåbes fra underklasse.

Ved også, hvordan man kalder en konstruktør til en forældreklasse? For at køre en forældrekonstruktør , a opkald til forælder ::_construct() i barnet konstruktør er påkrævet. Hvis barnet ikke definerer en konstruktør så kan det være arvet fra forældreklasse ligesom en normal klasse metode (hvis den ikke blev erklæret som privat).

Efterfølgende er spørgsmålet, kan vi kalde subclass constructor fra superclass constructor i Java?

Du kan ikke opkald -en underklasse konstruktør fra en superklasse konstruktør . Ringer det konstruktør af en underklasse indenfor konstruktør af basisklassen er ikke mulig. Det er der forskellige årsager til, men en er det en konstruktør af en afledt klasse opkald , implicit eller eksplicit, en konstruktør af basisklassen.

Hvordan påberåber en underklasse sin superklasses konstruktør?

EN underklasse kan få dens egne private datamedlemmer, så en underklasse også kan have dens egen konstruktører . Således, når en underklasse objektet instansieres underklasse objekt skal også automatisk udføre en af konstruktører af superklasse . Til opkald -en superklasse konstruktør super søgeordet bruges.

Anbefalede: