C++ 封装,多态,继承特点

来源:互联网 发布:vscode eclipse 编辑:程序博客网 时间:2024/06/08 00:27

       面向对象的三个基本特征是:封装、继承、多态。其中,封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的代码模块(类);它们的目的都是为了——代码重用,而多态为了实现另一个目的——接口重用!

图片来源http://blog.csdn.net/ruyue_ruyue/article/details/8211809

 

C++多态:可以简单的概括为“一个接口,多种方法”,程序在运行时才决定调用的函数。C++的多态性是通过虚函数实现的,虚函数允许子类重新定义成员函数,覆盖父类的函数。

多态性分为两种:1.编译时多态:通过重载来实现,重载是在函数名相同,参数列表不同(参数个数不同,或参数类型不同,或者两者都不同),这种境况下,编译器会根据参数的不同调用函数;2.运行时多态:通过虚函数实现,程序在运行时才能确定调用函数。

向上转型——把一个子类型的对象转为父类型的对象。向上转型的过程中需要特别注意:1.向上转型是安全的;2.向上转型可以自动完成;3.向上转型的过程中会丢失子类型信息。而我们会常常希望在向上转型的过程中,不希望丢失子类的函数信息,在C++中可以通过指针或者引用解决这个问题。而C++在含有虚函数的类中悄悄的加入了一个指针,用这个指针指向一个表格,在这个表格中会包含每一个虚函数的索引,用这个索引来找到相应的虚函数的入口地址。

纯虚函数:在基类中声明的虚函数,它在基类中没有定义,但要求任何派生类都要定义自己的实现方式,含有纯虚函数的类叫抽象类,抽象类不能生成对象。

 

C++封装:封装可以隐藏实现细节,使得代码模块化,封装可以把过程和数据包围起来,对数据的访问只能通过已定义的一些函数,也叫接口来完成。

 

在面向对象程序编程可理解为:把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或对象操作,对不可信的进行信息隐藏。

 

 

C++继承:可以使用现有类的所有功能,并在无需重新编写原来类的情况下对这些功能进行扩展。

通过继承创建的新类称为“子类”或“派生类”。被继承的类称为“基类”、“父类”或“超类”。要实现继承,可以通过“继承”(Inheritance)和“组合”(Composition)来实现。在某些 OOP 语言中,一个子类可以继承多个基类。但是一般情况下,一个子类只能有一个基类,要实现多重继承,可以通过多级继承来实现。

继承的实现方式?

继承概念的实现方式有三类:实现继承、接口继承和可视继承。

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

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

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

 

如果有不正确。欢迎大家来指正。

0 0
原创粉丝点击