抽象基类的用途是什么?

阿尤什(Ayush)

我知道抽象基类是那些具有纯虚函数的对象,并且不能创建抽象基类的对象。

那么,为什么我们要创建一个无法定义其对象的类呢?

劳伦斯·艾洛(Lawrence Aiello)

这是开发人员之间用来说“这是我们要实现的功能的类型”的契约,如果开发人员要设计的类要继承基类,则将实现留给开发人员。

简单的例子:

#include <iostream>
using namespace std;
class Animal
{
    public:
        Animal() {}
        virtual void sound() = 0;
};

/* Dog class is derived from base class Animal */
class Dog : public Animal   
{
    public:
        Dog() {}
        void sound() 
        {
            cout << "woof!" << endl;
        }
};

在这里,Dog是一个Animal,并且必须实现它自己的声音。基类Animal的sound()函数意味着Animals会发出声音,并且从其继承的任何类Animal都应实现声音函数。由此,您可以创建一个Cat从其声音类输出喵声的类,以及一个Bear输出吼声类,等等。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

内部抽象方法在抽象类中的用途是什么?

来自分类Dev

android中抽象类的用途是什么

来自分类Dev

dijitReset类的用途是什么?

来自分类Dev

HashMap中Holder类的用途是什么?

来自分类Dev

对象类的正确预期用途是什么?

来自分类Dev

模拟的基类是什么?

来自分类Dev

抽象类中非抽象空方法的含义是什么

来自分类Dev

String类中hash32()的用途是什么?

来自分类Dev

Rails模型类中实例变量的用途是什么

来自分类Dev

HttpURLConnection类的setDoOutput和setDoInput方法的用途是什么

来自分类Dev

在实现的类中调用接口方法的用途是什么?

来自分类Dev

JOOQ的自动生成类中字段的SQLDataType的用途是什么

来自分类Dev

nio缓冲区类中limit()的用途是什么

来自分类Dev

子类中AbstractList类的removeRange方法的用途是什么

来自分类Dev

Java“上下文”类的用途是什么?

来自分类Dev

实体类的用途和好处是什么?

来自分类Dev

。* \\的用途是什么?

来自分类Dev

符号的用途是什么?

来自分类Dev

isNull()的用途是什么?

来自分类Dev

标志的用途是什么?

来自分类Dev

GCDWebServer的用途是什么?

来自分类Dev

getchar()的用途是什么?

来自分类Dev

ThreadLocal的用途是什么?

来自分类Dev

SetWriteDeadline的用途是什么

来自分类Dev

标志的用途是什么?

来自分类Dev

令牌的用途是什么?

来自分类Dev

getchar()的用途是什么?

来自分类Dev

dequeueReusableAnnotationViewWithIdentifier的用途是什么?

来自分类Dev

operator <的用途是什么?