webForumDet fria alternativet

Ingen default konstruerare!?

Javaur Java

3 svar · 406 visningar · startad av Reza

Medlem sedan feb. 2001107 inlägg
Frågan#1

När jag ärver en klass utan default konstruerare kan jag i C++ anropa någon bas klass konstruerare med hjälp av initierings listan i den härledda klassens konstruerare.

SubClass() : BasClass(”test”) {};

Hur kan man göra detta i Java?
Alltså, anropa någon av super klassens konstruerare (från sub klassen) när en default konstruerare saknas?

Medlem sedan dec. 2000399 inlägg
#2

Om jag förstått dig rätt kan du göra så här:

public ClassName() {
super("Anropa konstruerare i superklassen!");
}
Medlem sedan feb. 2001107 inlägg
#3

Du har förstått helt rätt!!
Tack för hjälpen.

Detta är för mig rätt konstigt, anropas inte först bas klassen konstruerare och SEDAN sub klassens när ett objekt av sub klassens typ skapas?
Om jag nu förstår detta rätt, innebär det att det inte finns något som heter initierings lista i Java!?

Medlem sedan juli 2002581 inlägg
#4

Rätt.

Initeringslistans motsvarighet är att man deklarerar variablerna så här i klassen:
int p = 23;
super-anropen måste även komma först.

133 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)