黑马程序员技术交流社区

标题: 多态的特点 [打印本页]

作者: 吕晓阳    时间: 2015-4-27 11:21
标题: 多态的特点

1、多态中非静态成员函数的特点

        在编译时期:参阅引用型变量所属的类中是否有调用的方法。如果有,编译通过,如果没有编译失败。

如:在上面的示例中,如果用a.catchMouse();编译就会报错。这时只能通过强转,向下转型后,可以使用子类的特有功能。

        在运行时期:参阅对象所属的类中是否有调用的方法。这就是说,如果父类中有一个非抽象的方法,而子类继承后又将其复写了,在多态运行时,父类的引用调用这个同名函数时,被运行的将是父类中的方法。

        简单总结就是:成员函数在多态调用时,编译看左边,运行看右边

2、多态中成员变量的特点

        无论编译和运行,都参考左边(引用变量所属的类)。如:多态中的父类引用调用成员变量时,如果父类和子类有同名的成员变量,那么被调用的是父类中的成员变量。

3、多态中静态成员函数的特点

        无论编译和运行,都参考左边。也就是父类引用在调用静态同名函数时,被调用的是父类中的静态函数。这是因为,当类一被加载,静态函数就随类绑定在了内存中。此时,不需要创建对象,就可以使用类名直接调用。同时,父类中的静态成员函数一般是不被复写的。



作者: andre    时间: 2015-4-27 21:37
来学习了!!
作者: kolyneh    时间: 2015-4-27 22:03
学习了,不错不错
作者: pengcheng0328    时间: 2015-4-27 22:10
学习了,谢谢!
作者: 黄文昭    时间: 2015-4-27 22:13
是这样的!
作者: 348532020    时间: 2015-4-27 22:21
好,谢谢分享
作者: lclxjzz    时间: 2015-4-27 22:23
学习饿了······
作者: 爱如kongcheng    时间: 2015-4-27 23:02
很全面。
作者: 王善辉    时间: 2015-4-27 23:24
学习拉。。。。。
作者: 斷灬dian    时间: 2015-4-27 23:33
路过,楼主加油!!

作者: ye646682485    时间: 2015-4-28 09:03
受教了受教了




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