A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 吕晓阳 中级黑马   /  2015-4-27 11:21  /  590 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

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

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

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

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

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

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

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

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


10 个回复

倒序浏览
来学习了!!
回复 使用道具 举报
学习了,不错不错
回复 使用道具 举报
学习了,谢谢!
回复 使用道具 举报
是这样的!
回复 使用道具 举报
好,谢谢分享
回复 使用道具 举报
学习饿了······
回复 使用道具 举报
很全面。
回复 使用道具 举报
学习拉。。。。。
回复 使用道具 举报
路过,楼主加油!!
回复 使用道具 举报
受教了受教了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马