Java Inheritance (Subclass và Superclass)
Trong Java, có thể kế thừa các thuộc tính và phương thức từ lớp này sang lớp khác. Chúng tôi nhóm “khái niệm kế thừa” thành hai loại:
- lớp con (con) – lớp kế thừa từ lớp khác
- lớp cha (cha) – lớp được kế thừa từ
Để kế thừa từ một lớp, hãy sử dụng extends
từ khóa.
Trong ví dụ dưới đây, Car
lớp (lớp con) kế thừa các thuộc tính và phương thức từ Vehicle
lớp (lớp cha):
Thí dụ
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);
}
}
Bạn có nhận thấy công cụ protected
sửa đổi trong Xe không?
Chúng tôi đặt thuộc tính thương hiệu trong Xe thành công cụ protected
sửa đổi quyền truy cập . Nếu nó được đặt thành private
, lớp Xe sẽ không thể truy cập nó.
Tại sao Và Khi nào Sử dụng “Thừa kế”?
– Nó hữu ích cho khả năng tái sử dụng mã: sử dụng lại các thuộc tính và phương thức của một lớp hiện có khi bạn tạo một lớp mới.
Mẹo: Cũng hãy xem chương tiếp theo, Đa hình , sử dụng các phương thức kế thừa để thực hiện các tác vụ khác nhau.
Từ khóa cuối cùng
Nếu bạn không muốn các lớp khác kế thừa từ một lớp, hãy sử dụng final
từ khóa:
Nếu bạn cố gắng truy cập một final
lớp, Java sẽ tạo ra lỗi:
final class Vehicle {
...
}
class Car extends Vehicle {
...
}
Đầu ra sẽ như thế này:
Main.java:9: error: cannot inherit from final Vehicle
class Main extends Vehicle {
^
1 error)