static polymorphism c# code example

Example 1: c# polymorphism

class Animal{
  public virtual void animalSound() {
    Console.WriteLine("The animal makes a sound");
  }
}

class Pig: Animal {
  public  override void animalSound() {//override superclass method
    Console.WriteLine("The pig says: wee wee");
  }
}

class Dog: Animal {
  public override void animalSound() {//override superclass method
    Console.WriteLine("The dog says: bow wow");
  }
}

static class main {
  static void Main(){
    //You can add all objects inherited from Animal to an Animal type list
    Animal[] animals = new Animal[3]; //Creating the Animal List
    animals[0] = new Animal(); //Add a new animal object to the list
    animals[1] = new Dog(); //Add a new dog object to the list
    animals[2] = new Pig(); //Add a pig object to the list
    foreach (Animal a in animals){
      a.animalSound(); //This statement prints the correct string no matter the class
    }
  }
}

Example 2: c# polymorphism constructor

public class A  {
  protected int member;

  public A(int nb)
  { // Base constructor
    member = nb;
  }
}

public class B : A {
	public B(int nb) : base(nb) // Call base constructor
    { // Derived constructor
    }
}