您的位置:首页 > 编程语言 > C语言/C++

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

2012-09-17 18:39 141 查看
主要参考了下面的文章,根据它来谈谈自己的看法。

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

先贴张图:



1. public继承

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


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

2. protected继承

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

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

3. private继承

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

从语法角度上来说,[b]private继承[/b]后,父类public和protected成员都变成子类的private了,它比protected继承更严格。也就说这些父类的成员只能被继承一次,再继续继承,父类的成员就不可见了。private继承更不符合“Liskov替换原则(LSP)”了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: