Hi, i have a question about the sense of using virtual / override. Look at this code.
using System; class Animal { public void AnimalSound() { Console.WriteLine("The animal makes a sound"); } }
class Cat : Animal { public void AnimalSound() { Console.WriteLine("The cat says: miauw"); } }
class Program { static void Main(string[] args) { Animal myAnimal = new Animal(); Animal myCat = new Cat(); myAnimal.AnimalSound(); myCat.AnimalSound(); } }
This gives 2 times: The animal makes a sound. It's normal. The solution is to make method AnimalSound() in class Animal virtual and override in class Cat.
But why not just doing this: Cat myCat = new Cat(); (instead of Animal myCat = new Cat();) ? Then it's solved. Isn't it easier than using virtual and override? What are the benefits in this case to use virtual/override? Thanks V.