C++的三大特性,简易说明
C++作为一种面向对象的编程语言,其三大特性分别为
封装(Encapsulation)、继承(Inheritance)和多态(Polymorphism)。
1、封装(Encapsulation)
它指的是将数据(属性)和操作数据的方法(函数)封装在一个类中,形成一个独立的单元。
封装通过访问控制符(如public、protected、private)来实现。
public成员可以在类外被访问、
protected成员只能被类本身及其派生类访问、
private成员则只能在类内部被访问。
封装的主要目的是隐藏对象的内部实现细节,只对外提供公共的接口。
通过封装,可以保护对象的数据不被随意访问和修改,从而提高了程序的安全性和可维护性。
生活事例:
我有一个电视遥控器。遥控器上有很多按钮,如电源键、音量键、频道键等,但我不需要知道遥控器内部是如何工作的,比如信号是如何传输到电视上的,或者电池是如何供电的。你只需要知道如何使用这些按钮来控制电视。
2、继承(Inheritance)
它允许一个类(子类或派生类)继承另一个类(父类或基类)的属性和方法。
通过继承,子类可以扩展或修改父类的功能,同时保持与父类的关系。
C++支持单继承、多重继承、多层继承。
在单继承中,一个子类只能继承一个父类;如男人类继承人类。
在多重继承中,子类可以继承父类,孙子类可以继承子类;
如程序员类继承工人类,工人类继承人类。
在多层继承中,一个子类可以同时继承多个父类。
如男程序员同时继承男人类和工人类。
继承不仅减少了代码冗余,还使得程序结构更加清晰、逻辑更加简洁。
生活事例:
如我有一个学生证,这个学生证不仅包含了我的个人信息(如姓名、学号等),还附带了图书馆借阅证的功能。这里的图书馆借阅证功能就可以看作是继承自另一个“借阅证”类的特性。
3、多态(Polymorphism)
它指的是同一个接口(操作或函数)可以作用于多种类型的对象上,并产生不同的行为。
多态分为静态多态和动态多态两种:
- 静态多态:主要通过函数重载和运算符重载实现。在编译时,编译器根据函数的参数类型或数量来确定调用哪个函数。
- 动态多态:主要通过虚函数实现。在运行时,根据对象的实际类型来确定调用哪个函数。这要求基类中有虚函数,并且派生类重写了这些虚函数。
多态的存在大大提高了程序的扩展性和可维护性。
通过多态,可以在不修改现有代码的情况下,增加新的功能或修改现有功能。
生活事例:在动物园里,可能会看到各种各样的动物,如猫、狗、羊等。它们都可以发出叫声,虽然都是“发出叫声”这个动作,但不同动物发出的声音不太相同。如狗是“汪”、猫是“喵”、羊是“咩”,这就是多态的一个体现。