| Java | C++ |
|---|---|
| Pure object-oriented language. | Hybrid between procedural and object-oriented. |
| All functions (methods) are part of a class. | Can have stand-along functions. |
| No multiple inheritance. | Multiple inheritance. |
| Formal interface specifications. | No formal interface specifications. |
| No parameterized type. | Templates as parameterized type. |
| No operator overloading. | Operator overloading. |
| All methods (except final methods) are dynamically bound. |
Virtual functions are dynamically bound. |