Kế thừa Java
Kế thừa Java (Lớp con và Siêu lớp)
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 thừa kế" thành hai loại:
- lớp con (con) - lớp kế thừa từ lớp khác
- superclass (cha mẹ) - lớp được kế thừa từ
Để kế thừa từ một lớp, hãy sử dụng từ khóa extends
.
Trong ví dụ bên dưới, lớp Car
(lớp con) kế thừa các thuộc tính và phương thức từ lớp Vehicle
(siêu lớp):
Ví 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ụ sửa đổi protected
trong Xe không?
Chúng tôi đặt thuộc tính thương hiệu trong Xe thành công cụ sửa đổi quyền truy cập protected
. Nếu nó được đặt thành private
, lớp Xe sẽ không thể truy cập được.
Tại sao và khi nào nên sử dụng "Kế thừa"?
- Hữu ích cho khả năng sử dụng lại 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: Ngoài ra, hãy xem chương tiếp theo, Đa hình , chương này 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 nào đó, hãy sử dụng từ khóa final
:
Nếu bạn cố truy cập lớp final
, Java sẽ phát sinh lỗi:
final class Vehicle { ... } class Car extends Vehicle { ... }
Đầu ra sẽ giống như thế này:
Main.java:9: error: cannot inherit from final Vehicle
class Main extends
Vehicle {
^
1 error)