[英]“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.