织梦CMS - 轻松建站从此开始!

罗索

c++ 三种继承(public protect private)

落鹤生 发布于 2015-10-01 10:36 点击:次 
主要参考了下面的文章,根据它来谈谈自己的看法。 参考文章: http://blog.sina.com.cn/s/blog_60cc33d70100xylq.html 先贴张图: 1. public继承 从语义角度上来说, public 继承是一种接口继承(可以理解为子类对象可以调用父类的接口,也就有可能实现多态了) 从语法
TAG: 继承  

主要参考了下面的文章,根据它来谈谈自己的看法。

参考文章:http://blog.sina.com.cn/s/blog_60cc33d70100xylq.html

先贴张图:

1. public继承

    从语义角度上来说,public继承是一种接口继承(可以理解为子类对象可以调用父类的接口,也就有可能实现多态了)

  从语法角度上来说,public继承后,关系见上图。很明显父类public成员在子类中仍然是public,所以子类对象可以调用父类的接口

 

2. protected继承

  从语义角度上来说,protected继承是一种实现继承

   从语法角度上来说,protected继承后,父类public和protected成员都变成子类的protected成员了,也就是说子类对象无法调用父类的接口,只能将父类的函数当作子类的内部实现,当然也就不符合“Liskov替换原则(LSP”了。

 

3. private继承

   从语义角度上来说,private继承是一种实现继承

  从语法角度上来说,private继承后,父类public和protected成员都变成子类的private了,它比protected继承更严格。也就说这些父类的成员只能被继承一次,再继续继承,父类的成员就不可见了。private继承更不符合“Liskov替换原则(LSP”了。

 

(fingding)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www.rosoo.net/a/201510/17391.html]
本文出处:CSDN博客 作者:fingding 原文
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容