我遇到類的繼承問題。 這裏是我的Java代碼:Java打印中的繼承null
public class spaarRekening extends rekening{
private double rente;
public double getRente(){
return rente;
}
spaarRekening(String rN, int s, double d){
super(rN, s);
rente = d;
}
spaarRekening sR = new spaarRekening("456", 999999, 2.5);
}
public static class rekening implements rekeningIF{
int saldo;
static String rekeningNummer;
rekening(String rN, int s){
rekeningNummer = rN;
saldo = s;
}
public static String getRekeningNummer(){
return rekeningNummer;
}
public int getSaldo(){
return saldo;
}
}
我想讓spaarRekening被打印出來:
System.out.printf("Uw rekeningnummer is: %s\n", spaarRekening.getRekeningNummer());
但它打印出空。 這是爲什麼?
謝謝。
在構造函數中初始化一個靜態var很可能是一個bug。在極少數情況下,這可能是合理的。此外,您的代碼非常混亂,因爲每個Java-Developer在閱讀'spaarRekening.getRekeningNummer()'時都會考慮一個實例。事實上,這是一個靜態調用'spaarRekening'類型。類型以Java中的大寫字母開頭! –
「rekeningNummer」爲靜態的任何特定原因?看起來很奇怪,因爲你會認爲真實世界的系統會有很多(可能是獨特的)rekeningNummers。 – maksimov
實例化自己內部的spaarRekening實例嗎? – didxga