Java: tất cả class ngầm kế thừa Object → cây đơn gốc (single inheritance tree). protected member truy cập được từ class cùng package (kể cả không kế thừa).
C++: không có base class chung. Kế thừa có specifier: public, protected, private thay đổi visibility. protected chỉ truy cập được trong derived class.
Khác biệt chính:
- Java:
extendsđơn, dùnginterfacecho đa kế thừa. - C++: hỗ trợ đa kế thừa trực tiếp, virtual inheritance giải quyết diamond problem.
- Java: method ảo mặc định. C++: phải khai báo
virtual. - Java: không truy cập grandparent member trực tiếp (
super.superkhông hợp lệ).