我将我的基类更改abstract
为项目,现在我收到以下错误:
无法创建抽象类或接口的实例
我收到错误是因为abstract
不允许命名新的类实例吗?
newPlane = new Airplane_Abstract(name, position);
Run Code Online (Sandbox Code Playgroud)
Dan*_*Tao 14
我看到了你之前的问题,其中你询问了"纯虚拟"的含义(abstract
在C#中).
你不能实例化一个abstract
类的原因是它可能有abstract
成员,没有实现.所以说你的班级看起来像这样:
abstract class Airplane_Abstract
{
public abstract int GetSomeInteger();
}
Run Code Online (Sandbox Code Playgroud)
然后假设您可以实例化其中一个,您可以编写如下代码:
var airplane = new Airplane_Abstract();
// What would this be?
int integer = airplane.GetSomeInteger();
Run Code Online (Sandbox Code Playgroud)
当然,我不相信你实际上必须在抽象类中有抽象成员.但抽象类的一般概念是它不能独立存在; 它必须在继承自它的类中进一步定义.抽象成员是最明显的例子,说明为什么会这样; 可能还有其他原因.
Shape
例如,想想.这是一个非常常见的例子,它可以作为一个抽象类来理解.你真的不能实例只是一个Shape
,可以吗?("创造一个形状.""什么样的形状?""没有那种.只是一个抽象的形状."不是真的有效,是吗?)