C++ 封装、继承、多态、重载、覆盖、隐藏基本概念详解

来源:互联网 发布:mysql 如何优化派生表 编辑:程序博客网 时间:2024/06/05 02:38

一、面向对象的三个基本特征

(1)封装

  也就是把客观事物封装为抽象的类,并且类可以把自己的数据和方法只让可信的对象或者类进行操作,不可信的类进行隐藏。

(2)继承

  就是可以使用现有类的所有功能,并在无需重新编写的情况下对这些功能进行扩展。通过继承产生了基类和派生类。继承是一种从一般到复杂的过程。

(3)多态

多态:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。在运行时,可以通过指向基类的指针,来调用实现派生类中的方法。

  实现多态有两种:覆盖和重载。

二、重载

概念:函数重载是指在同一个作用域内,可以有一组具有相同函数名,不同参数列表的函数,这组函数被称为重载函数。函数的重载其实就是“一物多用”的思想(这里指的物就是函数名),其实不仅是函数可以重载,运算符也可以重载的。

(1)同一作用域类,一般指在同一个类当中;

(2)函数名相同;

(3)参数列表不同;

(4)virtual关键字可有可无。

三、覆盖

概念:函数的覆盖是指在继承过程中,派生类会覆盖掉基类相同函数名,相同参数列表的函数。被称为覆盖。

(1)不同的作用域,分别位于派生类和基类;

(2)函数名相同;

(3)参数列表相同;

(4)基类函数必须有virtual关键字。

四、隐藏

概念:于覆盖概念对应,被覆盖的函数称为隐藏。

(1)基类和派生类函数名字相同;

(2)基类和派生类的成员变量名字相同;

(3)派生类对象、指针、引用类型变量访问基类中被隐藏的成员时,要在成员前面加上“类型名::”。


原创粉丝点击