实现继承(公有私有保护继承以及多继承)

在编程领域,经常会遇到类似属性,但细节或行为存在细微差别的组件。在这种情况下,有2种解决方法。

1、将每个组件声明为一个类,并在每个类中实现所有的属性,但这将重复实现相同的属性。

2、使用继承,从一个基类派生出类似的类,在基类中实现所有的通用功能,并在派生类中覆盖基本功能,以实现让每一个类都有独一无二的功能。

显然第二种方法更佳,C++派生语法如下所示:

class base

{

//……base class member

};

class derived:public/protected/private base

{

//……derived class member

};

下面介绍继承的方法:

保护继承:使用访问限定符protected,允许派生类和友元类访问它,但禁止在继承结构外部(包括main())访问它。可以对需要继承的基类属性进行保护。这是面向对象编程的一个非常重要的方面,它与数据抽象和继承一起确保派生类可安全的继承基类的属性 ,同时禁止在继承层次结构外部对其进行修改。(子类的子类也能访问基类的公有成员)

私有继承:使用关键字private,在派生类的实例中,基类的所有公有成员和方法都是私有的----不能从外部访问。从继承层次结构外部看,私有继承并非is-a关系。私有继承使得只有子类才能使用基类的属性和方法,因此被称为has-a关系。

切记:

1、要建立is-a关系,务必创建公有继承层次结构,要建立has-a关系,务必创建私有或保护继承层次结构。

2、公有继承意味着继承派生类的类能访问基类的公有和保护成员。

3、私有继承意味着继承派生类的类也不能访问基类的成员。

4、保护继承意味着继承派生类的类能访问基类的公有和保护方法。

5、务必牢记,无论继承关系是什么,派生类都不能访问基类的私有成员。‘

6、类的继承关系默认为私有继承,而结构则默认为公有。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值