码迷,mamicode.com
首页 > 其他好文 > 详细

抽象类和接口

时间:2019-05-12 19:45:03      阅读:117      评论:0      收藏:0      [点我收藏+]

标签:创建   virtual   string   ring   space   注意   表示   变量   pen   

抽象类:

  1. 表示现实世界的抽象概念(动物对于猪)

  2. 不能用来创建对象,只能用来定义类型或则继承并重写相关函数或指针

  3. 抽象类内部函数没有具体实现

抽象类的实现:

  1. 当类中定义了纯虚函数,这个类就是抽象类。

  2.纯虚函数是只定义了函数声明的虚函数

抽象类语法:

class picture       // 抽象类
{
public:
    virtual double area() = 0;   // 纯虚函数
};

 

抽象类的多态:

#include <iostream>
#include <string>

using namespace std;

class animal       // 抽象类
{
public:
    virtual void which_kind() = 0;   // 纯虚函数
};

class  cow : public animal  // 继承抽象类
{
public:
    void which_kind()
    {
     cout <<  "cow !" << endl;
    }
};

class sheep : public animal // 继承抽象类
{
public:
    void which_kind()
    {
     cout <<  "sheep !" << endl;
    }
};

void which_kind(animal* p)  // 抽象类可以定义指针
{
    p->which_kind(); 
}

int main()
{
    cow c;
    sheep s;
    which_kind(&c);  // 抽象类也具有多态性
    which_kind(&s);    
    return 0;
}

 

注意:

  1. 子类必须实现全部继承的抽象类的的纯虚函数,否则子类也将是抽象类

  2. 纯虚函数被重写后变成虚函数

 

 

接口:

  1. 类中没有定义任何成员变量

  2. 类中函数全是公有函数并且全是纯虚函数

  3.接口是一种特殊的抽象类

#include <iostream>
#include <string>

using namespace std;

class Channel
{
public:
    virtual bool open() = 0;
    virtual void close() = 0;
    virtual bool send(char* buf, int len) = 0;
    virtual int receive(char* buf, int len) = 0;
};

int main()
{
    return 0;
}

 

抽象类和接口

标签:创建   virtual   string   ring   space   注意   表示   变量   pen   

原文地址:https://www.cnblogs.com/zsy12138/p/10853154.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!