黑马程序员技术交流社区

标题: 被搞晕了。java实现多态的机制是什么?<已解决。谢谢诸位> [打印本页]

作者: 黑马-王建雨    时间: 2012-5-12 20:51
标题: 被搞晕了。java实现多态的机制是什么?<已解决。谢谢诸位>
本帖最后由 啷个里个郞 于 2012-5-13 00:00 编辑

求帮忙   
作者: 郭振    时间: 2012-5-12 20:52
父类A有一个方法function(),子类B,C分别继承A并且重写function(),当创建一个对象A b = new B(); b.function()就调用B的funciotn,假如你new C(),那调用的就是C重写的function。怎么判断使用那个类的function就是动态绑定,这个现象就是多态...
作者: It's_Zero    时间: 2012-5-12 21:29
就好比 动物是一个父类  然后  猫   狗  鱼  都是多态的表现形式
作者: 孙宇晨    时间: 2012-5-12 22:13
多态你可以从字面上去理解,一个类表现出多种形态。它是一种编码的技巧而不是写代码的格式或者方式。



要想理解多态你需要从需求入手。

伪代码例子:

void method(Father instance): instance.callmethod();

现在有两个子类 girl 和 boy . 如果我传入给method的对象是girl,那么instance.callmethod()是否就等同于

girl.callmethod(),如果传入的是boy,就等同于boy.callmethod().但是对于程序而言,表达式一直都是 void method(Father instance): instance.callmethod();没有改变过只不过通过传入不同的子类对象使这样一个表达式表现出了多种“类的形态”。这样的现象就叫做多态。

一个接口可以对应多个实现 (1vN : 多态的数学描述,1个形态代表多个形态)

继承:一个父类可以有多个子类 (1vN : 多态的数学描述,1个形态代表多个形态)

作者: 张成龙    时间: 2012-5-12 22:43
实现多态的机制就是重载和重写。重写是父类与子类之间多态性的一种表现;
重载是一个类中多态性的一种表现。




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