C++知识点分享02 多态

微信公众号: 星点课堂

新浪微博:女儿叫老白

网易云课堂:女儿叫老白

------------------------------------------------------------------------------------------------------------------------------

多态指多个派生类的同一个接口(接口名称相同,参数个数、参数类型均相同)的行为不同。

// planet.h

class CPlanet

{

public:

       CPlanet(){}

       virtual ~CPlanet(){}

扫描二维码关注公众号,回复: 3085523 查看本文章

public:

    virtual void light() = 0;

};

 

// sun.h

#include <iostream>

using std::cout;

using std::endl;

class CSun : public CPlanet

{

public:

       CSun()){}

       ~CSun(){}

public:

       virtual void light(){cout << “俺整天发着耀眼的光芒”<<endl;}

};

 

// moon.h

#include <iostream>

using std::cout;

using std::endl;

class CMoon : public CPlanet

{

public:

       CMoon ()){}

       ~ CMoon (){}

public:

       virtual void light(){cout << “Sorry, 俺只负责反射太阳光。刺到您眼睛的话,去投诉它,别来找俺。”<<endl;}

};

 

 

// earth.h

#include <iostream>

using std::cout;

using std::endl;

class CEarth : public CPlanet

{

public:

       CEarth ()){}

       ~ CEarth (){}

public:

       virtual void light(){cout << “看啥看,俺不发光!”<<endl;}

};

从以上几个类可以看出,CPlanet基类,负责提供纯虚接口light(),当然,它也可以提供默认实现。比如:

       virtual void light(){cout << “我发光了,大家注意!” << endl;}

CSun、CMoon、CEarth这三个派生类都提供了light()接口的实现。但是行为却各不相同。这就为面向对象设计提供了基础,各种不同对象,在做同样动作时表现出来可以不一样。

猜你喜欢

转载自blog.csdn.net/baizy77/article/details/82320791