Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

So sánh kế thừa (Inheritance) trong C++ và Java


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ùng interface cho đ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.super không hợp lệ).