I've created an abstract class called Vehicle and have 2 sub classes: Motorcycle and Automobile. How can I create an instance of Motorcycle by using type Vehicle? So something like this:
Vehicle m=new Motorcycle();
I am able to access all properties of the Vehicle class but it is not seeing the properties of the Motorcycle class. Thanks
When an instance of Motorcycle
is seen as as Vehicle
, then it, quite naturally, cannot give you access to Motorcycle
's unique properties. That's the point of inheritance.
To access them, you have to type-cast the instance:
Vehicle v = new Motorcycle();
((Motorcycle)v).MotorbikeEngineVolume = 250;
When you cannot be sure the instance truly is a Motorcycle
, use the is
operator:
Vehile v = …
…
if (v is Motorcycle)
{
((Motorcycle)v).MotorbikeEngineVolume = 250;
}