2-06_猫和狗(多态版)
1 package duoTai05; 2 3 public class Cat extends Animal{ 4 5 6 public void eat(){ 7 System.out.println("猫吃鱼"); 8 } 9 10 public void playGame(){ 11 System.out.println("猫捉迷藏"); 12 } 13 }
package duoTai05; public class Dog extends Animal{ public void eat(){ System.out.println("狗吃骨头"); } }
package duoTai05; public class Animal { public void eat(){ System.out.println("动物吃肉"); } }
1 package duoTai05; 2 3 public class AnimalDemo { 4 public static void main(String[] args) { 5 //向上转型 6 Animal a = new Cat(); 7 a.eat(); 8 9 //向下转型 10 Cat c = (Cat) a; 11 c.eat(); 12 c.playGame(); 13 14 //向上转型 15 a = new Dog(); 16 a.eat(); 17 18 //向下转型 19 //ClassCastException类型转换异常 20 // Cat cc = (Cat)a; 21 // cc.eat(); 22 // cc.playGame(); 23 } 24 }