如何在代碼中使用myAnimal
實例調用Animal
類的吃喝方法?如何調用超類的重載方法
public class Animal {
public void eat() {
System.out.println("Animal Eats");
}
public void drink() {
System.out.println("Animal Drinks");
}
}
public class Cat extends Animal {
@Override
public void eat() {
System.out.println("Cat Eats");
}
@Override
public void drink() {
System.out.println("Cat Drinks");
}
public static void main(String[] args) {
Cat myCat = new Cat();
myCat.eat();
myCat.drink();
Animal myAnimal = myCat;
myAnimal.eat();
myAnimal.drink();
}
}
輸出我得到:
Cat Eats
Cat Drinks
Cat Eats
Cat Drinks
這是我期望的輸出:
Cat Eats
Cat Drinks
Animal Eats
Animal Drinks
你要撥打的'animal'實施** **無'貓'的實施? – mthmulders 2013-03-27 19:47:57
除非你有'Cat'女巫調用'super.eat();'的方法,否則你不能直接從'Cat' – A4L 2013-03-27 19:51:15
做到這一點你不應該期待你所期望的......不應該在語言定義以及合理或想要的內容。繼承多態的全部意義在於獲得你所看到的,而不是你所期望的。 – 2017-04-07 04:17:27