黑马程序员技术交流社区

标题: 面向对象的多态怎么体现的 [打印本页]

作者: 北极£莜蓝    时间: 2014-6-6 21:47
标题: 面向对象的多态怎么体现的
感觉还是有点抽象,父类引用指向子类对象,只能访问子类复写了的方法,功 ,具体的什么情况用
作者: woshihq    时间: 2014-6-6 21:51
我是这样理解的,说法上,可以说是一个类的多种形态,用法上,就记住子类可以自动转换为父类,但父类只能强制转换为子类
作者: 黑马粉、峥    时间: 2014-6-6 22:09
多态间的成员特点:
方法有重写,而变量没有。
A:成员变量
        编译看左边,运行看左边。
B:成员方法
        编译看左边,运行看右边。

多态的好处:
        可以提高代码的扩展性和可维护性。

作者: sanjiadiankeli    时间: 2014-6-6 22:16
我们今天学这,有点蒙
作者: 西门吹风    时间: 2014-6-6 23:56
多态就是一个事物可以有不同的状态。如,有一个动物类,有一个猫类,猫类继承动物类,动物类中有一个吃的方法,猫类中用有吃鱼内容的吃方法把动物类中的吃方法覆盖掉,当用动物类类型的引用变量去指向一个猫实例时,引用变量虽然指向猫实例,但它的类型是动物类类型,只能访问猫实例属于动物类的功能,不能访问猫类特有的功能,吃功能就属于动物类的功能,而且此时它已经被猫类用有吃鱼内容的吃功能覆盖了,所以这个引用变量也能访问到有吃鱼内容的吃功能。也就是说,通过动物类类型引用变量访问的猫实例时,猫实例只具有动物类的功能,包括被猫类覆盖的动物类功能,此时的猫实例体现了作为动物类的状态。当用猫类类型引用指向猫实例时,则可以访问猫实例的所有功能,猫实例又体现了猫类的状态。一个猫实例可以有动物类的状态和猫类的状态,这就是多态吧。个人理解,不知道是否清楚。




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