面向对象的三大特征:
封装、继承、多态。
封装:将同一种对象的属性和方法抽象成一个类,隐藏对象的属性和方法的实现并对外提供接口,通过接口来访问类。
继承:对同类事物的同种特性的抽象。继承时,子类拥有父类的属性和方法,并且可以有自己特有的属性和方法,此外,子类还可以以自己的方式来实现父类的功能(重写).
多态:对不同种事物的同种行为的抽象。
多态分为:编译时多态和运行时多态。
编译时多态通过函数的重载和模板体现。
运行时多态通过虚函数体现。
#include <iostream>
using namespace std;
class A
{
public:
virtual void print()
{
cout<<"A"<<endl;
}
};
class B : public A
{
public:
void print()
{
cout<<"B"<<endl;
}
};
int main()
{
A a,*pa;
B b;
pa=&a;
(*pa).print();
pa=&b;
(*pa).print();
return 0;
}
A
B
请按任意键继续. . .
如果print()函数不是virtual函数结果会是怎么样?
A
A
请按任意键继续. . .