C++中的面向对象(四大基本特征与五大原则)

面向对象的基本特点包括:抽象、封装、继承、多态。
1、抽象:
指对同一类对象的共同属性和行为进行概括,而暂时不解释部分细节,形成类或接口。
抽象包括两方面:数据抽象和过程抽象。
.数据抽象:描述某类对象的属性或状态(类的属性)

过程(代码)抽象 :描述某类对象的共有的行为特征或具有的功能(类的方法)
抽象的实现:类

2、封装:
指将抽象出的数据、代码封装在一起,形成类。
目的:增强安全性和简化编程,使用者不必了解具体的实现细节,而值需要通过外部接口,以特定的访问权限,来使用类的成员

3、继承:
指在已有类的基础上,进行扩展形成新的类。
一种联结类的层次模型,并且允许和鼓励类的重用,提供一种明确表达共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),原始类称为新类的基类(父类).派生类可以从它的父类哪里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要.因此可以说,继承为了重用父类代码,同时为实现多态性作准备。
目的:提高代码的重用性。

4、多态:
指同一个名称,不同的功能实现方式。
其允许不同类的对象对同一消息做出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活/抽象/行为共享/代码共享的优势,很好的解决了应用程序函数同名问题。
(c++与java的多态实现异同:https://blog.csdn.net/yanchixiaguobin/articl
e/details/83623986)
目的:达到行为标识统一,减少程序中标识符的个数。

五大基本原则
1、单一职责原则SRP(Single Responsibility Principle)
指一个对象(类)应该只有一个职责。若一个类的职责过多,则会过度依赖这个类,加大修改成本。

2、开放封闭原则(Open-Closed principle)
指软件实体(类,模块,函数等等)应该是可扩展的,但是不可修改。因为修改程序有可能会对原来的程序造成错误。不能修改,但是可以添加功能,尽可能的在外边添加新的类。

3、里氏替换原则(Liskov-Substituion Principle)
任何基类可以出现的地方,子类一定可以出现。 LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。

4、依赖倒置原则(Dependecy-Inversion Principle)
简单来说
A.高层次的模块不应该依赖于低层次的模块,他们都应该依赖于抽象。
B.抽象不应该依赖于具体实现,具体实现应该依赖于抽象。

5.接口分离原则(Interface-Segregation Principle)
一个接口应该保证,实现该接口的实例对象可以只呈现为单一的角色;这样,当某个客户程序的要求发生变化,而迫使接口发生改变时,影响到其他客户程序的可能生性小。

猜你喜欢

转载自blog.csdn.net/qq_43530773/article/details/113792028