Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

Inheritance ใน C++ เทียบกับ Java

ความแตกต่างหลัก

หัวข้อC++Java
Root classไม่มี common baseทุกคลาส extends Object โดยนัย
Multiple inheritanceรองรับโดยตรงไม่รองรับ (ใช้ interface)
Virtual methodsต้องระบุ virtualทุก method เป็น virtual โดยนัย
Access specifier ในการสืบทอดpublic/protected/private inheritanceเฉพาะ public (extends)
Protected accessเฉพาะ derived classเข้าถึงได้จาก class เดียว package ด้วย
Grandparent accessเข้าถึงได้เข้าถึงไม่ได้โดยตรง

รายละเอียด

  • Java: ใช้ extends เดียว ไม่ระบุ visibility ได้ มี super เรียก parent constructor
  • C++: รองรับ multiple inheritance, virtual inheritance แก้ diamond problem, ควบคุม visibility ได้
  • Protected ใน Java: เข้าถึงได้จาก class ใน package เดียวกันแม้ไม่ได้สืบทอด