Illustrates polymorphism : virtual « Class « C# / CSharp Tutorial






using System;

public class Car
{
  public string make;
  public string model;

  public Car(string make, string model)
  {
    this.make = make;
    this.model = model;
  }

  public virtual void Accelerate()
  {
    Console.WriteLine(model + " accelerating");
  }

}

public class MyFirstCar : Car
{

  public MyFirstCar(string make, string model) : base(make, model)
  {
  }

  public override void Accelerate()
  {
    Console.WriteLine("Pushing gas pedal of " + model);
    base.Accelerate();  
  }

}

public class MySecondCar : Car
{

  public MySecondCar(string make, string model) : base(make, model)
  {
  }

  public override void Accelerate()
  {
    Console.WriteLine("Twisting throttle of " + model);
    base.Accelerate(); 
  }
}


class MainClass
{
  public static void Main()
  {
    MyFirstCar myCar = new MyFirstCar("Toyota", "MR2");
    myCar.Accelerate();

    MySecondCar myMySecondCar = new MySecondCar("Harley-Davidson", "V-Rod");
    myMySecondCar.Accelerate();

  }

}
Pushing gas pedal of MR2
MR2 accelerating
Twisting throttle of V-Rod
V-Rod accelerating








7.23.virtual
7.23.1.Virtual Methods and Overriding
7.23.2.Override virtual functions
7.23.3.new virtual method
7.23.4.Override virtual method
7.23.5.Define virtual function in base and its subclass
7.23.6.Class inheritance with virtual method
7.23.7.Illustrates versioning: virtual/new
7.23.8.Illustrates polymorphism
7.23.9.Demonstrate a virtual method.
7.23.10.When a virtual method is not overridden, the base class method is used
7.23.11.Virtual method in a multilevel hierarchy
7.23.12.Use virtual methods and polymorphism.
7.23.13.Virtual Accessor