Java OOP Principles and Differences from C++.