I have below codes,
First code:
    {
        public virtual void Test()
        {
            Console.WriteLine("Parent Test");
        }
    }
    class Child : Parent
    {
        public override void Test()
        {
            Console.WriteLine("Child Test");
        }
        static void Main()
        {
            Child c = new Child();
            c.Test();
        }
    }
Output: Child Test
Second code:
    {
        public void Test()
        {
            Console.WriteLine("Parent Test");
        }
    }
    class Child : Parent
    {
        public void Test()
        {
            Console.WriteLine("Child Test");
        }
        static void Main()
        {
            Child c = new Child();
            c.Test();
        }
    }
Output: Child Test
I can able re-implement a function in child class without using virtual and override. Second code also gives same output then why I should virtual and override?
 
    