2016-11-25 147 views
-5

我创建了一个名为Vehicle的抽象类,并有2个子类:摩托车和汽车。 如何使用类型车辆创建摩托车实例? 因此,像这样:如何使一个基类C类型的子类的实例#

Vehicle m=new Motorcycle(); 

我能够访问汽车类的所有属性,但它没有看到摩托车类属性。 感谢

+1

那么,或者不要将它声明为'Vehicle',而是将其声明为'Motorcycle',或者将其转换为'Motorcycle',在那里您需要访问此类型的属性或方法。 –

回答

2

Motorcycle一个实例视为Vehicle,那么,很自然,不能给你访问Motorcycle的独特属性。这是继承的关键。

要访问它们,你必须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; 
} 
0

通过以上你会陈述写作只能访问从摩托车继承的摩托车成员或在摩托车中被覆盖的摩托车成员,但如果您想访问那些不属于车辆一部分的摩托车成员,则必须编写: 摩托车m =新摩托车(); 通过使用此实例,您将能够访问派生类的成员。 谢谢!

相关问题