黑马程序员技术交流社区

标题: 多态·· [打印本页]

作者: τ、高童鞋ゝ    时间: 2012-4-18 11:35
标题: 多态··
java中实现多态的机制是什么?? 不是怎么明白,希望能帮助我理解下,最好能举个示例,谢谢!
作者: 王怡然    时间: 2012-4-18 12:04
你仔细看视频就OK的,这个问题在老师的视频里讲的很细,而且很容易理解。
下面是我的理解,你参考下吧。

有一个父类FuClass,它有2个子类ZiClass1,ZiClass2。FuClass有一个方法run(),两个子类都重写了这个方法。
那么我们可以定义一个FuClass的引用fc,让它指向一个子类的对象,比如FuClass fc = new ZiClass1();
那么我们调用fc.run()方法时候,会进行动态绑定,也就是fc它的实际类型的run()方法,即ZiClass1的run()方法。
同样你写FuClass fc = new ZiClass2();fc.run()其实调用的是ZiClass2的run()方法。
这种由于子类重写父类方法,然后用父类引用指向子类对象,调用方法时候会进行动态绑定,这就是多态。
作者: newlaw2013    时间: 2012-4-18 12:20
java中实现多态的机制:
父类或接口定义的引用变量可以指向子类或具体实现类的实例对象。
多态就是多种状态,一个事物即是...又是...
基础的学习,有时候太专业的用语容易让人无所适从,这时候需要从其他方面来思考,使概念简单、形象:
两个类:动物Animal    猫Cat  ,动物类是猫类的父类
Animal animal = new Cat();
这里的animal是一个对象引用,它即是动物、也是猫,这个引用就具备多态的性质了。
作者: 黑马-刘昌文    时间: 2012-4-18 13:38
父类对象的引用指向了子类的对象就叫多态。比如,List list=new ArrayList() 就用到了多态!
作者: 伊文龙    时间: 2012-4-18 13:45
我来根据我的理解举个例子
猪是动物
你可以称呼猪为猪,你也可以称呼猪为动物,这样都是合理的。
你可以声明一个名字为pig对象是动物,然后把它实例化为一头猪。这样也是合理的,因为猪就是动物。
这样,pig这个引用就指向了猪这个实例。
多看几遍视频,在琢磨琢磨就好了,理解东西总需要个过程的。




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