码迷,mamicode.com
首页 > 编程语言 > 详细

面向对象语言成员变量方法可见性在继承中的变化

时间:2016-06-02 23:34:58      阅读:290      评论:0      收藏:0      [点我收藏+]

标签:

最近做得的有点杂,接触到几种面向对象的语言,C#,C++,JAVA .在一个情景下,软件的框架已经写好了,我们要对其功能实现增加和修改,这种情况是经常发生的,那么在面向对象的程序设计中我们要怎么做呢。我们都知道面向对象语言有几个特点,多态,封装,继承,既然框架已经写好了,我们修改功能可以考虑用继承的方法去实现新的功能,那么这样做对原有的功能会有影响么?这就涉及到成员变量成员方法可见性在继承中的变化了。

 

首先,我们看C++

派生类通过继承,将基类的成员作为自己的一部分,但不同的继承方式导致基类的成员在派生类中具有不同的属性。我们首先使用下图表示,基类成员继承后将会在派生类中表现的访问属性: 

 

上图是单继承的方式,也没有涉及派生再次派生的情况。但这两种情况都可以使用该图的逻辑进行推导。就像再次派生的情况,只要将派生类当做基类看待就可以了。 

到这里我们已经知道了基类中的成员在继承类中的属性,那么再通过一个角度详述可见性问题。

继承方式 public继承 protected继承 private继承
基类成员属性 public protected private public protected private public protected private
基类成员对其对象 可见 不可见 不可见 可见 不可见 不可见 可见 不可见 不可见
基类成员对派生类 可见 可见 不可见 可见 可见 不可见 可见 可见 不可见
基类成员对派生类对象 可见 不可见 不可见 不可见 不可见 不可见 不可见 不可见 不可见

面向对象语言成员变量方法可见性在继承中的变化

标签:

原文地址:http://www.cnblogs.com/howarddeng/p/5554722.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!