黑马程序员技术交流社区

标题: 关于多态、 [打印本页]

作者: Hi.。    时间: 2015-12-27 10:33
标题: 关于多态、
java的三大特性,封装、继承、多态。
但我发现,我对多态表达的不是很好。如果就是单单一个问题:你说一说多态。该怎么全面的表达?

作者: 一大把手    时间: 2015-12-27 10:49
父类的引用指向了子类对象
作者: 一大把手    时间: 2015-12-27 10:50
编译看左边,运行看右边
作者: Hi.。    时间: 2015-12-27 10:58
一大把手 发表于 2015-12-27 10:49
父类的引用指向了子类对象

如果面试时候,面试官问你,就这样回答吗?具体一点呀
作者: 18338762337    时间: 2015-12-27 11:03
多态是“一个接口,多种方式”。一个程序可以出现同名但方法不同的情况。这主要是通过继承的方式来实现的,一个新的类在继承两一个类的时候,这个新类就需要重写父类的方法。
作者: Hi.。    时间: 2015-12-27 11:08
18338762337 发表于 2015-12-27 11:03
多态是“一个接口,多种方式”。一个程序可以出现同名但方法不同的情况。这主要是通过继承的方式来实现的, ...

你这个。。。好像不对吧、首先,多态是指同一事物在不同时刻表现出的不同状态。
其次,这些好像说的也都不是多态。
一个程序中(指一个类),不允许出现同名同参数列表的方法,如果方法名相同参数列表不同,叫方法重载。
子父类中出现完全相同的方法,叫方法的重写。

作者: 499087476    时间: 2015-12-27 11:16
这块我还不理解,不理解。
作者: Hi.。    时间: 2015-12-27 11:17
如果我回答这个问题,我会说,多态是面向对象的三大特性之一,指的是同一事物在不同时刻表现出来的不同状态。它有3个前提:存在继承或者实现关系、有方法的重写、有父类或父接口的引用指向子类对象。它分为:具体类多态、抽象类多态、接口多态。关于多态中成员的访问特点,只有成员方法是"编译看左边运行看右边",因为只有方法,存在方法的重写;成员变量和静态方法,都是"编译看左边运行也看左边"。多态可以提高我们代码的维护性,也提高了代码的拓展性。但它也有弊端,父类不能使用子类的特有功能。

大概能说这些,可还是对多态的概念,表达不好,仅仅一句话带过了、还有什么需要补充或者修改的吗?

作者: 一大把手    时间: 2015-12-27 12:56
Hi.。 发表于 2015-12-27 10:58
如果面试时候,面试官问你,就这样回答吗?具体一点呀

多态可以理解为事物存在的多种体现形态。
多态的体现:
父类的引用指向了子类对象;
父类的引用也可以接收自己子类对象。
多态的好处:
多态的出现大大的提高了程序的扩展性。
多态的弊端:
      提高了程序的扩展性,但是只能使用父类的引用访问父类的成员。
多态的前提:
     必须是类与类之间有关系,要么继承,要么实现,还得覆盖。
在多态中成员函数的特点:
     在编译时期:参阅引用型变量所属的类中是否有调用的方法,如果有编译通过,否则编译失败。
      在运行时期:参阅对象所属的类中是否有调用的方法。

这样能不能理解的多一点?
作者: Hi.。    时间: 2015-12-27 13:35
一大把手 发表于 2015-12-27 12:56
多态可以理解为事物存在的多种体现形态。
多态的体现:
父类的引用指向了子类对象;

百度上的。我都知道这些,我意思是不懂得怎么把这一个体系下的内容完整的表达出来。如果有时间,你看看我楼上那个回复,还有没有需要改进的地方。总之,谢谢你啦




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