封装:就是把客观事物封装成抽象的类,可以使某个属性只能被当前类使用,从而避免被其他类或对象进行操作——增加了安全性。也可以让使用者不必了解具体类的内部实现细节,而只需通过提供给外部的访问接口来访问类中的属性和方法——简化编程。
封装的意义:
保护或者防止代码(数据)被我们无意中破坏;
保护成员属性,不让类以外的程序直接访问和修改;
隐藏方法细节,简化编程。
用封装来实现高内聚,低耦合。
C++中可以给成员变量和成员函数定义访问级别public属性:
公开public:属性和方法可以在类的内部使用,也可以被继承,也可以在类的外部使用
保护protect:属性和方法可以在类的内部使用,可以被继承,但不可以在类的外部使用
私有private:属性和方法可以在类的内部使用,不可以被继承,也不可以在类的外部使用
继承:指的是可以让某个类型的对象获得另一个类型的对象的属性的方法,继承可以使得子类沿用父类的成员(属性和方法),而无需重新编写原来的类并且可以对父类的成员(属性和方法)进行扩展。通过继承创建的新类称为“子类”或“派生类”,被继承的类称为“基类”、“父类”或“超类”。继承提高了代码的复用性和维护性。
继承的特点:
子类可以继承父类非私有成员。
子类可以有自己特有的成员,并不会把父类的成员复制给子类,而去引用。
子类可以重写父类的方法,而重新定义了父类中的方法,叫做重写
子类可以在父类提供方法的基础上,额外新增一些功能。
子类无法继承父类的构造方法。
子类不能继承父类中不符合访问权限的成员。
多态:
接口的多种不同的实现方式即为多态——接口重用!
多态是以封装和继承为基础的,一个类实例的相同方法在不同情形下有不同的表现形式,使不同内部结构的对象可以共享相同的外部接口。多态分为静态多态和动态多态。静态多态是通过重载和模板技术实现的,在编译期间确定;动态多态是通过虚函数和继承关系实现的,执行动态绑定,在运行期间确定。