title: Function overriding without virtual and override
body: <p>I just have one basic question :</p>
  
  <pre><code>public class virtualTest
     {
         public virtual void vTest()
         {
             Console.WriteLine("Base Class");
         }
     }
  
     public class derivedVirtualTest : virtualTest
     {
         public override void  vTest()
          {
              Console.WriteLine("Derived Class");
          }
     }
  </code></pre>
  
  <p>Here i have used function overriding with function vTest()</p>
  
  <p>But if i :</p>
  
  <pre><code>public class virtualTest
     {
         public void vTest()
         {
             Console.WriteLine("Base Class");
         }
     }
  
     public class derivedVirtualTest : virtualTest
     {
         public void  vTest()
          {
              Console.WriteLine("Derived Class");
          }
     }
  </code></pre>
  
  <p>removes virtual and override keywords from respective places , then also code works.</p>
  
  <p>How can this be possible?</p>
  
  <p>Or then what is the use of override and virtual (entire function overriding) if code works fine without virtual and override???</p>
  
  <p><strong>EDIt:</strong></p>
  
  <p>My Method through which i am calling above classes</p>
  
  <pre><code> static void Main(string[] args)
          {
  
  
  
              derivedVirtualTest objderivedVirtualTest = new derivedVirtualTest();
              objderivedVirtualTest.vTest();
  
              virtualTest objvirtualTest = new virtualTest();
              objvirtualTest.vTest();
  
              Console.ReadLine();
  
  
          }
  </code></pre>