Trong Java, inheritance (kế thừa) là một cơ chế mà một class (gọi là subclass hoặc derived class) có thể kế thừa các thuộc tính và phương thức từ một class khác (gọi là superclass hoặc parent class). Kế thừa cho phép tái sử dụng code, tăng tính mô-đun và tổ chức cấu trúc code một cách hợp lý. Cơ chế này là một trong những nguyên tắc cơ bản của lập trình hướng đối tượng (OOP).
Cách Hoạt Động:
- Tạo Subclass: Khi bạn tạo một subclass, bạn sử dụng từ khóa extends để chỉ định class mà subclass đó kế thừa. Subclass có thể truy cập các thuộc tính và phương thức public và protected của superclass, nhưng không thể truy cập các thành viên private của superclass.
class Vehicle { // Superclass protected String brand = "Ford"; public void honk() { System.out.println("Tuut, tuut!"); } } class Car extends Vehicle { // Subclass private String modelName = "Mustang"; public static void main(String[] args) { Car myCar = new Car(); myCar.honk(); // Gọi phương thức từ superclass System.out.println(myCar.brand + " " + myCar.modelName); } }
- Ghi Đè Phương Thức: Subclass có thể ghi đè (override) các phương thức của superclass để cung cấp triển khai cụ thể cho subclass.
@Override public void honk() { System.out.println("Peep, peep!"); }
- Constructor của Superclass: Constructor của superclass không được kế thừa. Nếu subclass không có constructor nào, Java sẽ gọi constructor mặc định của superclass. Nếu superclass không có constructor mặc định, subclass phải gọi một trong các constructor của superclass bằng cách sử dụng từ khóa super.
public Car() { super(); // Gọi constructor của superclass // Các hành động khác }
- Sử Dụng super: Từ khóa super có thể được sử dụng để truy cập các phương thức và thuộc tính của superclass từ subclass, đặc biệt là khi ghi đè phương thức hoặc cần truy cập vào constructor của superclass.
Lợi Ích:
- Tái Sử Dụng Code: Kế thừa cho phép tái sử dụng các thuộc tính và phương thức của superclass, giảm thiểu trùng lặp code.
- Tổ Chức Code: Kế thừa giúp tổ chức và quản lý cấu trúc code tốt hơn, làm cho nó dễ đọc và bảo trì.
- Đa Hình: Subclass có thể định nghĩa các phương thức riêng của mình hoặc ghi đè các phương thức của superclass, cho phép các đối tượng được xử lý theo cách đa hình thông qua giao diện chung.
Kế thừa là một khái niệm mạnh mẽ trong Java và OOP, nó làm cho mã nguồn linh hoạt và dễ mở rộng hơn.
Comments