C# 如何创建基类C类型的子类的实例#

C# 如何创建基类C类型的子类的实例#,c#,inheritance,subclass,abstract,superclass,C#,Inheritance,Subclass,Abstract,Superclass,我创建了一个名为Vehicle的抽象类,它有两个子类:Motorcycle和Automobile。 如何使用类型Vehicle创建摩托车实例? 比如说: Vehicle m=new Motorcycle(); 我能够访问Vehicle类的所有属性,但它没有看到Motorcycle类的属性。 谢谢当摩托车的实例被视为车辆时,它自然无法让您访问摩托车的独特属性。这就是继承的意义 要访问它们,您必须: 当您无法确定实例是否确实是摩托车时,请使用: 通过编写上述声明,您将只能访问从车辆继承或在摩托车中

我创建了一个名为Vehicle的抽象类,它有两个子类:Motorcycle和Automobile。 如何使用类型Vehicle创建摩托车实例? 比如说:

Vehicle m=new Motorcycle();
我能够访问Vehicle类的所有属性,但它没有看到Motorcycle类的属性。
谢谢

摩托车
的实例被视为
车辆
时,它自然无法让您访问
摩托车
的独特属性。这就是继承的意义

要访问它们,您必须:

当您无法确定实例是否确实是摩托车时,请使用:


通过编写上述声明,您将只能访问从车辆继承或在摩托车中覆盖的摩托车成员,但如果您希望访问不属于车辆一部分的摩托车成员,则您必须编写: 摩托车m=新摩托车(); 通过使用此实例,您将能够访问派生类的成员。
谢谢大家!

那么,要么不要将其声明为
车辆
,而是声明为
摩托车
,要么将其强制转换为
摩托车
,您需要从该类型访问属性或方法。
Vehicle v = new Motorcycle();
((Motorcycle)v).MotorbikeEngineVolume = 250;
Vehile v = …
…
if (v is Motorcycle) 
{
    ((Motorcycle)v).MotorbikeEngineVolume = 250;
}