我创建了一个名为Vehicle的抽象类,它有2个子类:摩托车和汽车。 如何使用类型Vehicle创建摩托车实例? 所以像这样:
Vehicle m=new Motorcycle();
我能够访问Vehicle类的所有属性,但它没有看到Motorcycle类的属性。 感谢
答案 0 :(得分:2)
当Motorcycle
的实例被视为为Vehicle
时,它很自然地无法让您访问Motorcycle
&#39独特的属性。这是继承的重点。
要访问它们,您必须type-cast the instance:
Vehicle v = new Motorcycle();
((Motorcycle)v).MotorbikeEngineVolume = 250;
如果您无法确定该实例是Motorcycle
,请使用is
operator:
Vehile v = …
…
if (v is Motorcycle)
{
((Motorcycle)v).MotorbikeEngineVolume = 250;
}
答案 1 :(得分:0)
通过编写上述声明,您将只能访问摩托车的那些成员,这些成员要么继承自车辆,要么在摩托车中被覆盖,但如果您想要访问那些不属于车辆的摩托车成员那么您必须写: 摩托车m =新摩托车(); 通过使用此实例,您将能够访问派生类的成员。 谢谢!