类成员函数的重载_覆盖_隐藏的区别
2014-09-14 17:45:02  By: dwtedx

成员函数被重载的特征


(1)相同的范围(在同一个类中)


(2)函数名字相同


(3)参数不同


(4)virtual 关键字可有可无


覆盖是指派生类函数覆盖基类函数、特征是


(1)不同的范围(分别位于派生类与基类)


(2)函数名字相同


(3)参数相同


(4)基类函数必须有virtual 关键字


“隐藏”是指派生类的函数屏蔽了与其同名的基类函数、规则如下


(1)如果派生类的函数与基类的函数同名,但是参数不同、此时、不论有无virtual关键字、基类的函数将被隐藏(注意别与重载混淆)


(2)如果派生类的函数与基类的函数同名、并且参数也相同、但是基类函数没有virtual 关键字、此时、基类的函数被隐藏(注意别与覆盖混淆)


特殊情况


1.final修饰的属性可以被隐藏、但是不能被赋值、即不能用=来赋值、网上说final属性不能被修改

这个说法不准确、因为对于引用类型的变量用final修饰后、它只是不能被指向其他对象

但是可以改它自身的值、可以用ArrayList测试、final属性可以在运行的时候进行初始化、但是不能不出现初始化语句


2.final修饰的方法不能被覆盖、可以被重载


3.final修饰的类不能被继承


4.private 方法隐式添加了final


若资源对你有帮助、浏览后有很大收获、不妨小额打赏我一下、你的鼓励是维持我不断写博客最大动力

想获取DD博客最新资讯、你可以扫描下方的二维码、关注DD博客微信公众号(ddblogs)

或者你也可以关注我的新浪微博、了解DD博客的最新动态:DD博客官方微博(dwtedx的微博)

如对资源有任何疑问或觉得仍然有很大的改善空间、可以对该博文进行评论、希望不吝赐教

为保证及时回复、可以使用博客留言板给我留言: DD博客留言板(dwtedx的留言板)

感谢你的访问、祝你生活愉快、工作顺心、欢迎常来逛逛


快速评论


博文评论

  • 该博文还没有评论、赶快抢沙发吧...
DD记账
top
+