在我的代碼中有兩個類,子類擴展超類。在子類中,我重寫了超類方法。在創建對象時,我創建了超類對子類對象的引用,它的工作正常。但是,我再次將超類引用轉換爲完整的超類對象,但它調用子類methodn而不是超類方法。我的假設輸出wrong.Here我的代碼java中的類鑄造
public class OverRiding {
public static void main(String[] args) {
// TODO Auto-generated method stub
//Super class reference to sub class Object
Dog dog = new Animal();
dog.eat();
dog.bow();
//Completely converted into pure Dog class Object
Dog d = (Dog) dog;
d.eat();
d.bow();
}
}
狗類
class Dog {
public void eat() {
System.out.println("Dog eat Biscuits");
}
public void bow() {
System.out.println("Dog bow");
}
}
類動物
class Animal extends Dog {
public void eat() {
System.out.println("Animal eat Food");
}
}
而且我的輸出是
Animal eat Food
Dog bow
Animal eat Food
Dog bow
縮進是你最好的朋友。 – Maroun
'類動物延伸狗'?嗯我想反之亦然 –
動物不應該延長狗,因爲每個動物不是狗。它應該是另一種方式:狗應該擴展動物,因爲狗*是動物。 –