62,614
社区成员
发帖
与我相关
我的任务
分享
public class Test {
public static void main ( String[] args ) {
//向上转型又被称作:
Animal a1 = new Cat();
a1.eat(); //猫吃鱼
Animal a2 = new Cat(); //向上转型
//向下转型
Cat c1 = ( Cat ) a2;
c1.move(); //猫在走路
//编译正常通过,但是执行时,提示
//Exception in thread "main" java.lang.ClassCastException: Animal cannot be cast to Cat
//at OverrideTest.main(OverrideTest.java:28)
Animal a3=new Animal();
Cat c2=(Cat)a3; //此外为何不能将Animal转为Cat
c2.move();
}
}
class Animal {
public void eat() {
System.out.println ( "动物正在吃东西" );
}
}
class Cat extends Animal {
//overrite
public void eat() {
System.out.println ( "猫吃鱼" );
}
public void move() {
System.out.println ( "猫在走路" );
}
}