Mega Code Archive

 
Categories / C# / Class Interface
 

Illustrates polymorphism

/* Mastering Visual C# .NET by Jason Price, Mike Gunderloy Publisher: Sybex; ISBN: 0782129110 */ /*   Example7_2.cs illustrates polymorphism */ using System; // declare the MotorVehicle class class MotorVehicle {   // declare the fields   public string make;   public string model;   // define a constructor   public MotorVehicle(string make, string model)   {     this.make = make;     this.model = model;   }   // define the Accelerate() method (may be overridden in a   // derived class)   public virtual void Accelerate()   {     Console.WriteLine(model + " accelerating");   } } // declare the Car class (derived from MotorVehicle) class Car : MotorVehicle {   // define a constructor   public Car(string make, string model) :   base(make, model)   {     // do nothing   }   // override the base class Accelerate() method   public override void Accelerate()   {     Console.WriteLine("Pushing gas pedal of " + model);     base.Accelerate();  // calls the Accelerate() method in the base class   } } // declare the Motorcycle class (derived from MotorVehicle) class Motorcycle : MotorVehicle {   // define a constructor   public Motorcycle(string make, string model) :   base(make, model)   {     // do nothing   }   // override the base class Accelerate() method   public override void Accelerate()   {     Console.WriteLine("Twisting throttle of " + model);     base.Accelerate();  // calls the Accelerate() method in the base class   } } public class Example7_2 {   public static void Main()   {     // create a Car object and call the object's Accelerate() method     Car myCar = new Car("Toyota", "MR2");     myCar.Accelerate();     // create a Motorcycle object and call the object's Accelerate() method     Motorcycle myMotorcycle = new Motorcycle("Harley-Davidson", "V-Rod");     myMotorcycle.Accelerate();   } }