Virtual method in a multilevel hierarchy : virtual « Class « C# / CSharp Tutorial






In a multilevel hierarchy, the system executes the first override-virtual method found in the hierarchy.

using System;  
  
class BaseClass {  
  // Create virtual method in the base class.   
  public virtual void who() {  
    Console.WriteLine("who() in BaseClass");  
  }  
}  
  
class Derived1 : BaseClass {  
  // Override who() in a derived class.  
  public override void who() {  
    Console.WriteLine("who() in Derived1");  
  }  
}  
  
class Derived2 : Derived1 {  
  // This class also does not override who().  
}  
 
class Derived3 : Derived2 {  
  // This class does not override who().  
}  
 
class MainClass {  
  public static void Main() {  
    Derived3 dOb = new Derived3();  
    BaseClass baseRef; // a base-class reference  
  
    baseRef = dOb;   
    baseRef.who(); // calls Derived1's who()  
  }  
}
who() in Derived1








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