面向对象:面向对象是一种思想,是相对面向过程而言的,就是说面向对象是将功能等通过对象来实现,将功能封装到对象当中,由对象来实现具体的细节。该思想将数据作为第一位,而方法或算法作为第二位,是对数据的一种优化,方便了操作,简化了过程。
具有三大特征:封装、继承、多态。
封装:隐藏了对象的属性和实现细节,只对外公开公共的访问方式,这样隔离了具体的变化,便于使用,提高了复用性和安全性。
继承:两种事物间存在了一定的所属关系,继承的类就可以从被继承的类中获得一些属性和方法,继承是作为多态前提的。
多态:父类或接口的引用指向了子类对象,提高了程序的扩展性,也就是说只要实现或继承了同一个父类或对象的接口,就可以实现父类或接口中相应的方法,提高程序的扩展性,(不好之处:父类引用不可以访问子类中的成员)。
C++的多态性用一句话概括就是:在基类的函数前加上virtual关键字,在派生类中重写该函数,运行时将会根据对象的实际类型来调用相应的函数。如果对象类型是派生类,就调用派生类的函数;如果对象类型是基类,就调用基类的函数
1:用virtual关键字申明的函数叫做虚函数,虚函数肯定是类的成员函数。
2:存在虚函数的类都有一个一维的虚函数表叫做虚表,类的对象有一个指向虚表开始的虚指针。虚表是和类对应的,虚表指针是和对象对应的。
3:多态性是一个接口多种实现,是面向对象的核心,分为类的多态性和函数的多态性。
4:多态用虚函数来实现,结合动态绑定.
5:纯虚函数是虚函数再加上 = 0;
6:抽象类是指包括至少一个纯虚函数的类。
纯虚函数:virtual void fun()=0;即抽象类!必须在子类实现这个函数,即先有名称,没有内容,在派生类实现内容。