abstract class Animal
{
public abstract void eat();
}
class Cat extends Animal
{
public void eat()
{
System.out.println("吃鱼");
}
public void cathMouse()
{
System.out.println("抓老鼠");
}
}
public class Duotai
{
public static void main(String[] args)
{
Animal a = new Cat();//这句代码在内存中是怎样的一个表现形式呢???
a.eat();
a.cathMouse();//既然父类的引用已经指向了子类对象,那不就是已经拥有子类中的所有内容了吗,那为什么
//不能掉用子类中的方法呢???
abstract class Animal
{
public abstract void eat();
}
class Cat extends Animal
{
public void eat()
{
System.out.println("吃鱼");
}
public void cathMouse()
{
System.out.println("抓老鼠");
}
}
class Duotai
{
public static void main(String[] args)
{
Animal a = new Cat();//这句代码在内存中是怎样的一个表现形式呢??? //在堆内存中建立了一个对象呗
a.eat();
a.cathMouse();//既然父类的引用已经指向了子类对象,那不就是已经拥有子类中的所有内容了吗,那为什么
//不能掉用子类中的方法呢???//因为你的数据类型是动物 你总不能说动物去抓老鼠 不是所有动物都会抓老鼠
}