Bài viết này sẽ giúp bạn hiểu về tính đa hình trong Java thông qua Overriding. Nếu bạn đã tìm hiểu về kế thừa lớp sẽ thấy rằng lớp con sẽ có khả năng ghi đè phương thức của lớp cha.

Lợi ích của việc Override đó là: giúp xác định một hành vi cụ thể cho kiểu lớp con, có nghĩa là một lớp con có thể triển khai một phương thức của lớp cha dựa trên yêu cầu của nó.

Overriding trong Java là gì?

Method Overriding tạm hiểu là ghi đè phương thức. Trường hợp xảy ra khi lớp con có phương thức giống lớp cha.

Khi phương thức ghi đè được triển khai thì JVM sẽ ưu tiên thực thi Overriding từ lớp con.

Để không bị lỗi nên thêm @Override phía trước phương thức.

Quy tắc Overriding

  • Phương thức lớp con phải giống tên với phương thức lớp cha
  • Phương thức phải có cùng tham số như trong lớp cha
  • Phải là quan hệ kế thừa (IS-A)
  • Không thể ghi đè phương thức được khai báo là final và static

Cách sử dụng Overriding

Thực hiện ví dụ sau đây bạn sẽ rõ mọi thứ.

Đầu tiên cần tạo một tập tin là DongVat.java

public class DongVat {

    void myName() {
        System.out.println("Tôi là động vật.");
    }

}

Tiếp theo tạo file ConCho.java

public class ConCho extends DongVat {
    @Override
    void myName() {
        System.out.println("Tôi là một con chó.");
    }

    public static void main(String[] args) {
        
        ConCho obj = new ConCho();
        obj.myName();

    }

}

Như ví dụ trên chúng ta thấy để xác định hành vi cho lớp ConCho thì cần phải khai báo lại phương thức cho nó.

Phía trước thêm @Override. Mặc dù nó không phải là bắt buộc. Tuy nhiên, khi chúng ta sử dụng điều này, phương thức phải tuân theo tất cả các quy tắc ghi đè. Nếu không, trình biên dịch sẽ tạo ra lỗi.

Kết luận: Phương thức Overriding trong Java là kiến thức cần nắm vững khi học lập trình hướng đối tượng. Bạn có thấy dễ hiểu khi đọc bài viết này? Hãy để lại Comment bên dưới nhé!

Bình luận!

Xin lưu ý rằng tất cả các bình luận đều được kiểm duyệt theo chính sách bảo mật và tất cả các liên kết đều là nofollow. KHÔNG sử dụng từ khóa trong trường tên. Hãy để lại một cuộc trò chuyện cá nhân và ý nghĩa. *