JAVA:关于上转型对象书上这个我没看明白啊!!!

来源:百度知道 编辑:UC知道 时间:2024/07/03 02:58:18
class 动物
{
void cry()
{
}
}
class 狗 extends 动物
{
void cry()
{System.out.printlb("旺旺......");
}
}
class 猫 extends 动物
{
void cry()
{System.out.println("喵喵......");
}
}
class Example4_20
{
public static void main(String args[])
{
动物 dongwu;
dongwu=new 狗();
dongwu.cry();
dongwu=new 猫();
dongwu.cry();
}
}class 动物
{
void cry()
{
}
}
class 狗 extends 动物
{
void cry()
{System.out.printlb("旺旺......");
}
}
class 猫 extends 动物
{
void cry()
{System.out.println("喵喵......");
}
}
class Example4_20
{
public static void main(String args[])
{
动物 dongwu;
dongwu=new 狗();
dongwu.cry();
dongwu=new 猫();
dongwu.cry();
}
}

当一个类

动物 dongwu;保存了一个基类的引用
dongwu=new 狗();创建一个狗的对象,用基类的引用指向子类的对象
dongwu.cry();相当于new 狗().cry(),也就是说dongwu.cry()调用的是子类狗的cry()方法,为什么是调用子类的cry()方法就涉及java的动态绑定机制,也就是多态的应用

记住这句话:子类引用父类的对象,这是重写override的核心地方。

这就是多态