title: typecasting in inheritance
body: <p>Given:</p>
  <pre><code>class TestA {
      public void start() { System.out.println(”TestA”); }
  }
  public class TestB extends TestA {
      public void start() { System.out.println(”TestB”); }
      public static void main(String[] args) {
          ((TestA)new TestB()).start();
      }
  }
  </code></pre>
  <p>What is the result?</p>
  <blockquote>
  <p>A. TestA</p>
  <p>B. TestB</p>
  <p>C. Compilation fails.</p>
  <p>D. An exception is thrown at runtime.</p>
  </blockquote>
  <p>The answer I gave to this question was <code>B</code></p>
  <p>What is the advantage of typecasting that is done at line 7 as we know that Method to be called depends on the actual object type.can anyone please give an example where the typecasting comes into play???????</p>