Why need to use "virtual" keyword when we can use "new" keyword
Example:
using System;
public class Animal
{
public virtual void MakeSound()
{
Console.WriteLine("Animal makes a sound");
}
}
public class Dog : Animal
{
public override void MakeSound()
{
Console.WriteLine("Dog barks");
}
}
public class Cat : Animal
{
public override void MakeSound()
{
Console.WriteLine("Cat meows");
}
}
public class Program
{
public static void Main()
{
Animal animal1 = new Animal();
animal1.MakeSound(); // Output: Animal makes a sound
Animal animal2 = new Dog();
animal2.MakeSound(); // Output: Dog barks
Animal animal3 = new Cat();
animal3.MakeSound(); // Output: Cat meows
}
}Last updated