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

我将我的基类更改为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(); 

当然,我不相信你实际上必须在抽象类中有抽象成员。 但抽象类的一般概念是它不能独立存在; 它必须在inheritance自它的类中进一步定义。 抽象成员是最明显的例子,为什么会这样; 可能还有其他原因。

想想Shape ,例如。 这是一个非常常见的例子,它可以作为一个抽象类。 你不能真正实例化一个Shape ,对吗? (“创造一个形状。”“什么样的形状?”“没有那种。只是一个抽象的形状。”真的不起作用,是吗?)

您无法创建抽象类的实例。 这就是抽象的意思。