本帖最后由 包晗 于 2012-7-16 18:21 编辑
abstract class Animal
{
abstract void eat();
}
class Cat extends Animal
{
public void eat()
{
System.out.println("吃鱼");
}
public void catchMouse()
{
System.out.println("抓老鼠");
}
}
class Dog extends Animal
{
public void eat()
{
System.out.println("吃骨头");
}
public void kanmen()
{
System.out.println("看门");
}
}
class Pig extends Animal
{
public void eat()
{
System.out.println("吃饲料");
}
public void gongdi()
{
System.out.println("拱地");
}
}
class DuotaiDemo
{
public static void main(String[] agrs )
{
chi(new Dog());
}
public static void chi(Animal a)
{
Dog o = (Dog)a;
a.eat(); // 问题在这里!
o.eat();
o.kanmen();
}
}
想请教大家
我已经强制转换了
Dog o = (Dog)a;
为何 a.eat(); 还会执行 按照我的理解 强制转换了后 a.eat(); 应该作废
可是 a.eat(); o.eat();
都执行了
(12期我会来) |
|