繁体   English   中英

“无法创建抽象类或接口的实例” C#错误消息

[英]“Cannot create an instance of the abstract class or interface” C# error message

我将基类更改为项目的abstract ,现在收到以下错误:

无法创建抽象类或接口的实例

我收到错误消息是因为不允许命名abstract类的新实例吗?

newPlane = new Airplane_Abstract(name, position);

您不能创建抽象类的实例。 可以将其视为可能还包含一些实现逻辑的接口。 如果您调用没有定义的抽象实例方法,将会发生什么?

我看到了您先前的问题,其中您询问了“纯虚拟”(C#中的abstract )的含义。

您无法实例化abstract类的原因是,它大概具有abstract成员, 没有实现 因此,说您的课程如下所示:

abstract class Airplane_Abstract
{
    public abstract int GetSomeInteger();
}

然后假设您可以实例化其中之一,则可以编写如下代码:

var airplane = new Airplane_Abstract();

// What would this be?
int integer = airplane.GetSomeInteger();

当然,我不认为您实际上必须在抽象类中具有抽象成员。 但是抽象类的一般思想是它不能单独存在。 必须在继承自它的类中进一步定义它。 抽象成员是为什么这样做的最明显例证。 可能还有其他原因。

例如,考虑Shape 这是一个很抽象的例子,对于抽象类来说很有意义。 你真的不能实例只是一个Shape ,可以吗? (“创建形状。”“什么样的形状?”“没有类型。只是抽象形状。”不是真的有用,是吗?)

您不能创建抽象类的实例。 那就是抽象的意思。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM