黑马程序员技术交流社区

标题: 实现多态的三个条件 [打印本页]

作者: 熊猫宝宝    时间: 2015-5-6 21:34
标题: 实现多态的三个条件
实现多态的条件,第一个:有继承关系。第二个:有方法重写。第三点:有父类引用指向子类对象

第三个,父类引用指向子类对象,怎么理解?

作者: 0416-孙磊    时间: 2015-5-6 21:35
咱们学的差不多,话说我来抢个沙发
作者: 空--格    时间: 2015-5-6 21:39
Fu fu =new Zi();
作者: csu050416    时间: 2015-5-6 21:43
打个比方: Animal  a = new  Cat(); 猫与动物就是子父类关系,左边是父类的引用,右边是子类的对象。编译的时候是看左边父类,运行的时候看右边子类:比如说调用吃这个方法,动物都会那么编译通过,但运行的时候,是运行猫的吃的动作;再比如:调用抓老鼠方法,动物就不一定了,这个是猫的特有,编译不通过。
作者: zhiweiqi    时间: 2015-5-6 21:50
第三个问题就是对象的上转型,即父类声明的对象用他的子类来初始化。例如:
class A{
public void show()
          {}
}
class B extends A{
public void show()
          {
            .............
          }
}
public static void main(String [] args){
   A a=new B();
}
作者: Dana-乌拉拉    时间: 2015-5-6 21:58
Fu f = new Zi();  就是父类的引用指向子类对象啊。你可以学习一下引用变量在内存中的加载方式就明白了。因为new一个对象在内存中的过程就是先在堆内存中开辟一个内存空间。然后在栈内存中也开辟一个空间,存入一个变量,这个变量记录堆内存的地址。父类引用指向子类对象就是父类的这个变量记录的是一个子类对象的地址值。
作者: zhang214214    时间: 2015-5-6 22:00
这个要有多子类和多继承关系的
作者: 代码搬运1号    时间: 2015-5-6 23:52
赞一个!
作者: ye646682485    时间: 2015-5-7 10:01
父类的类名引用




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2