title: C++ and Java : Use of virtual base class
body: <p>I have some doubts while comparing C++ and Java multiple inheritance.</p>
  
  <ol>
  <li><p>Even Java uses multiple, multi-level inheritance through interfaces - but why doesnt it use anything like a virtual base class as in C++ ? Is it because the members of a java interface are being ensured one copy in memory (they are public static final), and the methods are only declared and not defined ?</p></li>
  <li><p>Apart from saving memory, is there any other use of virtual classes in C++ ? Are there any caveats if I forget to use this feature in my multiple inheritance programs ?</p></li>
  <li><p>This one is a bit philosophical - but why didnt the C++ developers made it a default to make every base class, virtual ? What was the need of providing flexibility ?</p></li>
  </ol>
  
  <p>Examples will be appreciated. Thanks !!</p>