title: If derived class does not override the method,which version should be called?
body: <p>I am trying understand the need of override and virtual in C#,so I wrote the following code:</p>
  
  <pre><code>using System;
  namespace Override
  {
      class Base 
      {
          public virtual void method() 
          {
              Console.WriteLine("Base method");
          }
      }
      class Derived : Base 
      {
          public override void method()
          {
              Console.WriteLine("Derived method");
          }
      }
      class Program
      {
          static void Main(string[] args)
          {
              Derived d = new Derived();
              d.method();
          }
      }
  }
  </code></pre>
  
  <p>And I was expecting "Derived method" to be called and printed.Then I wrote the following code without using virtual/override combination.</p>
  
  <pre><code>using System;
  namespace Override
  {
      class Base 
      {
          public void method() 
          {
              Console.WriteLine("Base method");
          }
      }
      class Derived : Base 
      {
          public void method()
          {
              Console.WriteLine("Derived method");
          }
      }
      class Program
      {
          static void Main(string[] args)
          {
              Derived d = new Derived();
              d.method();
          }
      }
  }
  </code></pre>
  
  <p>And I got the same result i.e. "Derived method" called and printed.My question is if the code worked without virtual/override as I expected,what is the need of them? or am I missing something here?</p>