目录
前言:
面向对象(OOP)三大特性OOP(objectoriented programming)
面向对象语言有三大特性:封装、继承、多态
。
封装:
封装就是一种更好的管理,数据和方法都放到类里进行管理,再通过访问限定符进行限制。
继承定义
从类设计角度看,为了避免重复定义数据和方法,进行类的复用即为继承。
继承方式
总结:
-
基类private成员在派生类中无论以什么方式继承都是不可见的。这里的不可见是指基类的私有成员还是被继承到了派生类对象中,但是语法上限制派生类对象不管在类里面还是类外面都不能去访问它。
-
基类private成员在派生类中是不能被访问,如果基类成员不想在类外直接被访问,但需要在派生类中能访问,就定义为protected。可以看出保护成员限定符是因继承才出现的。
-
实际上面的表格我们进行一下总结会发现,基类的私有成员在子类都是不可见。基类的其他成员在子类的访问方式 == Min(成员在基类的访问限定符,继承方式),public > protected > private。
-
使用关键字class时默认的继承方式和访问限定都是private,使用struct时默认的继承方式和访问限定都是public,不过最好显示的写出继承方式。
-
在实际运用中一般使用都是public继承,几乎很少使用protetced/private继承,也不提倡使用protetced/private继承,因为protetced/private继承下来的成员都只能在派生类的类里面使用,实际中扩展维护性不强
前四点容易理解,第五点怎么理解呢?