C++三大特性(继承、封装、多态)

 封装

就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。一个类就是一个封装了数据以及操作这些数据的代码的逻辑实体。在一个对象内部,某些代码或某些数据可以是私有的,不能被外界访问。通过这种方式,对象对内部数据提供了不同级别的保护,以防止程序中无关的部分意外的改变或错误的使用了对象的私有部分。

继承

指可以让某个类型的对象获得另一个类型的对象的属性的方法。它支持按级分类的概念。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。 通过继承创建的新类称为“子类”或“派生类”,被继承的类称为“基类”、“父类”或“超类”。继承的过程,就是从一般到特殊的过程。要实现继承,可以通过 “继承”(Inheritance)和“组合”(Composition)来实现。继承概念的实现方式有三类:实现继承、接口继承和可视继承。

实现继承:是指直接使用基类的属性和方法而无需额外编码的能力;

接口继承:是指仅使用属性和方法的名称、但是子类必须提供实现的能力。

可视继承:可视继承是指子窗体(类)使用基窗体(类)的外观和实现代码的能力。

多态

是指一个类实例的相同方法在不同情形有不同表现形式。多态机制使具有不同内部结构的对象可以共享相同的外部接口。这意味着,虽然针对不同对象的具体操作不同,但通过一个公共的类,它们(那些操作)可以通过相同的方式予以调用。

    C++多态基于虚函数和虚继承实现。总之,C++多态的核心,就是用一个更通用的基类指针指向不同的子类实例,为了能调用正确的方法,我们需要用到虚函数和虚继承。在内存中,通过虚函数表来实现子类方法的正确调用;通过虚基类指针,仅保留一份基类的内存结构,避免冲突。

    所谓虚,就是把“直接”的东西变“间接”。成员函数原先是由静态的成员函数指针来定义的,而虚函数则是由一个虚函数表来指向真正的函数指针,从而达到在运行时,间接地确定想要的函数实现。继承原先是直接将基类的内存空间拷贝一份来实现的,而虚继承则用一个虚基类指针来指向虚基类,避免基类的重复。

参考链接:

【1】https://www.cnblogs.com/BEN-LK/p/10720249.html

【2】https://blog.csdn.net/IOT_SHUN/article/details/79674293

【3】https://www.cnblogs.com/longjiang-uestc/p/9594561.html

猜你喜欢

转载自www.cnblogs.com/lalalatianlalu/p/11517625.html