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)”了。
参考文章: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)”了。
相关文章推荐
- c++ 三种继承(public protect private)
- c++ 三种继承(public protect private)
- C++的三种继承机制以及继承机制对三种访问权限(public, protected, private)的影响
- C++中的三种继承public,protected,private详细解析
- C++中的三种继承public,protected,private
- C++三种继承方式public、protected、private
- C++中的三种继承public,protected,private详细解析
- C++中的三种继承public,protected,private详细解析
- C++中的三种继承public,protected,private(转)
- C++中的三种继承public,protected,private
- C++中的三种继承public,protected,private
- C++中的三种继承public,protected,private
- C++中的三种继承public,protected,private(转)
- C++中的三种继承public,protected,private
- C++中的三种继承public,protected,private
- C++中三种不同的继承方式(public、protected、private)的基类特性和派生类特性
- C++中的三种继承public,protected,private
- C++ 中的三种继承public , protected, private
- C++中的三种继承public,protected ,private
- C++中的三种继承public,protected,private