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

Video: Kan Java abstrakt klasse ha konstruktør?

Video: Kan Java abstrakt klasse ha konstruktør?
Video: Do abstract class have Constructors in C#? 2024, April
Anonim

Ja, en abstrakt klasse kan ha en konstruktør i Java . Du kan enten gi eksplisitt en konstruktør til abstrakt klasse eller hvis du ikke gjør det, kompilatoren vil legg til standard konstruktør uten argument i abstrakt klasse . Dette er sant for alle klasser og det gjelder også for en abstrakt klasse.

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

Du kan har ikke en abstrakt konstruktør , som abstrakt betyr at du må gi implementeringen for det på et tidspunkt i underklassen din. Men du kan ikke overstyre konstruktør . Der vil være ingen vits i å ha en abstrakt konstruktør : Du vil ring alltid konstruktør av barneklasse og ikke av grunnklasse.

På samme måte, hvordan kaller du en abstrakt klassekonstruktør? Du kan definere en konstruktør i en abstrakt klasse , men du kan ikke konstruere det objektet. Men konkrete under- klasser kan (og må) anrop en av konstruktører definert i abstrakt forelder klasse . Du kan ikke anrop an abstrakt klassekonstruktør med en klasse instansopprettingsuttrykk, dvs.

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

EN konstruktør i Java "bygger" egentlig ikke objektet, det brukes til å initialisere felt. Tenk deg at din abstrakt klasse har feltene x og y, og at du alltid vil at de skal initialiseres på en bestemt måte, uansett hvilken konkret underklasse som til slutt blir opprettet.

Kan abstrakt klasse ha objekter i Java?

Fordi det er abstrakt og en gjenstand er konkret. Nei, designere ga ikke en måte. Fordi en abstrakt klasse er en ufullstendig klasse (ufullstendig i den forstand det inneholder abstrakt metoder uten kropp og utgang) kan vi ikke opprette en forekomst eller gjenstand ; på samme måte som du sier for et grensesnitt.

Anbefalt: