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
}
}
}