〇、面向对象的三个基本特征:封装、继承、多态
面向对象的三个基本特征是:封装、继承、多态。其中,封装可以隐藏实现细节,使得代码模块化;继承可以扩展已知存在的代码模块(类);它们的目的是为了代码重用。而多态是为了实现另外一个目的,接口重用。
一、封装:代码模块化
1、基本概念
1)封装是把数据和操作数据的函数绑定在一起的概念,封装的本质是模块化。
2)C++通过创建类来支持封装和数据隐藏(public、protected、private),一般情况下都会将类成员状态设置为私有,进而能保证良好的封装性。
2、数据封装与数据抽象的区别(待更新)
1)数据封装是一种把数据和操作数据的函数捆绑在一起的机制;数据抽象是一种仅向用户暴露接口而把具体的实现细节隐藏起来的机制;
2)数据抽象是指,只向外界提供关键信息,并隐藏其后台的实现细节,即只表现必要的信息而不呈现细节。数据抽象是一种依赖于接口和实现分离的编程技术。接口独立于实现,如果改变底层实现,接口也将保持不变。
二、继承:代码重用
1、基本概念
1)面向对象程序设计中最重要的一个概念是继承,继承允许我们依据另一个类来定义一个类,继承使得创建和维护一个应用程序变得更加容易,也达到了重用代码功能和提高执行时间的效果。
2)在创建一个类是,不需要重新编写新的数据成员(属性)和成员函数(方法),只要指定新建的类继承了一个已有的类的成员即可,这个已有类称为基类(父类),新建的类称为派生类(子类)。
3)继承代表了is a关系,例如,哺乳动物是动物,狗是哺乳动物,狗是动物等等。
2、基类(父类)&派生类(子类)
一个类可以派生自多个类,意味着,它可以从多个基类继承数据和函数,定义一个派生类,我们使用一个类派生列表来指定基类,类派生列表以一个或多个基类命名。
3、访问控制和继承
派生类可以访问基类中所有的非私有成员。派生类一般继承所有基类的方法,但是以下情况除外:1)基类的构造函数、析构函数和拷贝构造函数;2)基类的重载运算符;3)基类的友元函数。
访问 | public | protected |