Illustrates versioning: virtual/new : virtual « Class « C# / CSharp Tutorial






using System;

public class BaseClass
{
  public string firstName;
  public string lastName;

  public BaseClass(string firstName, string lastName)
  {
    this.firstName = firstName;
    this.lastName = lastName;
  }

  public virtual void Accelerate()
  {
    Console.WriteLine("In BaseClass Accelerate() method");
    Console.WriteLine(lastName + " accelerating");
  }

}

public class DerivedClass : BaseClass
{

  public DerivedClass(string firstName, string lastName) : base(firstName, lastName)
  {
  }

  public new void Accelerate()
  {
    Console.WriteLine("In DerivedClass Accelerate() method");
    Console.WriteLine(lastName + " accelerating");
  }

}

class MainClass
{
  public static void Main()
  {
    Console.WriteLine("Creating a DerivedClass object");
    DerivedClass myDerivedClass = new DerivedClass("Toyota", "MR2");

    Console.WriteLine("Calling myDerivedClass.Accelerate()");
    myDerivedClass.Accelerate();
  }
}
Creating a DerivedClass object
Calling myDerivedClass.Accelerate()
In DerivedClass Accelerate() method
MR2 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