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

浅谈C++之继承机制

2015-07-31 16:46 267 查看
       以前总是看别人的博客,学到了很多东西,很少自己写博客,为了回馈大家,今天我也来开个张,那么就从我熟悉的C++写起吧。

       作为一门出色的面向对象编程语言,C++是博大精深的,其封装、继承和多态的重要特点贯穿始终,接下来谈一谈我对继承的理解。既然是继承,肯定至少存在两个,即被继承者和继承者,也就是C++中的基类(父类)和扩展类(子类)。那么基类和扩展类是如何发生联系的呢?

       首先,需要了解一下访问权限,类中的每一个成员变量和成员方法都是有访问权限的,分为public、protected和private三种类型。属于public类型的成员(包括变量和方法),既可以在该类中访问它,也可以在其扩展类中访问它,还可以在该类的外部(例如main函数)访问它,一般使用率较高的成员会采用这种方式。属于protected类型的成员,既可以在该类中访问它,也可以在其扩展类中访问它,多见于基类与扩展类背景下。属于private类型的成员,则只能在该类中访问它,一般该类所独有的成员变量都会采用private类型,避免外部类访问,起到保护作用。

       继承是面向对象编程的重要特征,继承的机制使得一个新类可以获得现有类的属性和方法,这就使得在软件的实际开发过程中代码的复用率得到提高,软件开发人员可以根据需求对现有类进行修改,最大限度地重复现有的软件。

                当类的继承方式为公有(public)继承时,基类的public和protected成员分别成为派生类的public和protected成员,派生类的其他成员可以直接访问它们,但是派生类外部只能通过派生类的对象访问继承来的public对象。基类的private成员在派生类内部和外部都是不可访问的。公有继承在实际应用中是最常见的一种继承方式。
         当类的继承方式为私有(private)继承时,基类的public和protected成员都成为派生类的private成员,派生类的其他成员可以直接访问它们,但是派生类外部无法通过派生类的对象访问继承来的对象。基类的private成员在派生类内部和外部都是不可访问的。
         当类的继承方式为保护(protected)继承时,基类的public和protected成员都成为派生类的protected成员,派生类的其他成员可以直接访问它们,但是派生类外部无法通过派生类的对象访问继承来的对象。基类的private成员在派生类内部和外部都是不可访问的。
           以上是单重继承,单重继承机制可以描述现实世界中大多数客观事物的关系,即只从一个基类中派生新类,但是现实世界中也存在从多个基类中派生新类的情况,称为多重继承。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C++ 面向对象 继承