This week's book giveaway is in the General Computing forum. We're giving away four copies of Arduino in Action and have Martin Evans, Joshua Noble, and Jordan Hochenbaum on-line! See this thread for details.
A a = new B(); is advisable to use, this is because of business purpose. Also creation of objects is left on some factory classes. So client code is totally unaware of the fact that what they are using. They just only know if A a.