0
這裏的一切都被重新命名和簡化。Java:如果這是instanceof Something,顯示一個只屬於Something的變量?
我有一個父類(normalThing),顯示一些關於該實例的數據的方法,另一個類(specialThing)擴展父級以包含另一個實例變量(addedPrice)。
我想讓我的顯示方法說出實例是否是specialThing,如果是,則顯示addedPrice。但由於addedPrice只屬於specialThing,我無法弄清楚如何編寫代碼!
void displayInfo(){
StringBuilder d = new StringBuilder("Am I special? ");
if(this instanceof specialThing){
d.append("Yes, so I cost an extra " + this.addedPrice);
//No, I didn't expect that to work, but I had hope
}
else d.append("Nope.");
JOptionPane.showMessageDialog(null, d);
}
有沒有辦法做到這一點,而不在normalThing類本質上作出「可能待addedPrice」變量?
不要讓您的父類依賴於子類。 **從來沒有。** –
@SotiriosDelimanolis **除了**,當它通過我信任的抽象(或重載)方法! –
@ElliottFrisch依賴關係我的意思是特別在父代的源代碼中使用子類型。用'抽象'方法你不這樣做,所以沒關係。 –