บทช่วยสอนJava

Java HOME Java Intro Java เริ่มต้น Java Syntax ความคิดเห็นของ Java ตัวแปร Java Java Data Types การหล่อแบบจาวา ตัวดำเนินการ Java Java Strings Java Math Java Booleans Java If...Else Java Switch Java ในขณะที่ลูป Java สำหรับลูป Java Break/ต่อ Java Arrays

เมธอดของจาวา

เมธอดของจาวา พารามิเตอร์เมธอด Java วิธี Java โอเวอร์โหลด ขอบเขต Java Java Recursion

คลาส Java

Java OOP Java Classes/Objects คุณสมบัติคลาส Java วิธีการคลาส Java Java Constructors Java Modifiers การห่อหุ้มด้วยจาวา แพ็คเกจ Java / API มรดกจาวา Java Polymorphism Java Inner Classes Java Abstraction อินเทอร์เฟซ Java Java Enums อินพุตผู้ใช้ Java Java วันที่ Java ArrayList Java LinkedList Java HashMap Java HashSet Java Iterator คลาส Java Wrapper ข้อยกเว้น Java Java RegEx Java Threads จาวา แลมบ์ดา

การจัดการไฟล์ Java

ไฟล์ Java Java สร้าง/เขียนไฟล์ Java อ่านไฟล์ Java ลบไฟล์

Java ฮาวทู

เพิ่มสองตัวเลข

Java Reference

คีย์เวิร์ด Java เมธอด Java String Java Math Methods

ตัวอย่าง Java

ตัวอย่าง Java Java Compiler แบบฝึกหัด Java Java Quiz ใบรับรอง Java


มรดกจาวา


การสืบทอด Java (ซับคลาสและซูเปอร์คลาส)

ใน Java เป็นไปได้ที่จะสืบทอดแอตทริบิวต์และเมธอดจากคลาสหนึ่งไปยังอีกคลาสหนึ่ง เราจัดกลุ่ม "แนวคิดการสืบทอด" ออกเป็นสองประเภท:

  • คลาสย่อย (ลูก) - คลาสที่สืบทอดมาจากคลาสอื่น
  • superclass (parent) - คลาสที่สืบทอดมาจาก

หากต้องการสืบทอดจากคลาส ให้ใช้extends คีย์เวิร์ด

ในตัวอย่างด้านล่างCarคลาส (คลาสย่อย) สืบทอดแอตทริบิวต์และเมธอดจากVehicleคลาส (ซูเปอร์คลาส):

ตัวอย่าง

class Vehicle {
  protected String brand = "Ford";        // Vehicle attribute
  public void honk() {                    // Vehicle method
    System.out.println("Tuut, tuut!");
  }
}

class Car extends Vehicle {
  private String modelName = "Mustang";    // Car attribute
  public static void main(String[] args) {

    // Create a myCar object
    Car myCar = new Car();

    // Call the honk() method (from the Vehicle class) on the myCar object
    myCar.honk();

    // Display the value of the brand attribute (from the Vehicle class) and the value of the modelName from the Car class
    System.out.println(myCar.brand + " " + myCar.modelName);
  }
}

คุณสังเกตเห็นการprotectedปรับเปลี่ยนในยานพาหนะหรือไม่?

เราตั้งค่าแอตทริบิวต์แบรนด์ ใน ยานพาหนะเป็น ตัวแก้ไข การprotected เข้าถึง หากตั้งค่าprivateเป็น คลาสรถจะไม่สามารถเข้าถึงได้

ทำไมและเมื่อใดจึงควรใช้ "มรดก"?

- มีประโยชน์สำหรับการนำโค้ดกลับมาใช้ใหม่: ใช้แอตทริบิวต์และวิธีการของคลาสที่มีอยู่ซ้ำเมื่อคุณสร้างคลาสใหม่

เคล็ดลับ:ดูบทต่อไปด้วยPolymorphismซึ่งใช้วิธีการที่สืบทอดมาเพื่อทำงานต่างๆ


คำสำคัญสุดท้าย

ถ้าคุณไม่ต้องการให้คลาสอื่นสืบทอดจากคลาส ให้ใช้finalคีย์เวิร์ด:

หากคุณพยายามเข้าถึงfinalคลาส Java จะสร้างข้อผิดพลาด:

final class Vehicle {
  ...
}

class Car extends Vehicle {
  ...
}

ผลลัพธ์จะเป็นดังนี้:

Main.java:9: error: cannot inherit from final Vehicle
class Main extends Vehicle {
                  ^
1 error)