Header Ads

Lập Trình Hướng Đối Tượng Trong Java Bài 7: Ghi Đè Phương Thức (Overriding Method) Trong Java

Khái niệm

Override là hiện tượng một phương thức thuộc lớp cha được định nghĩa lại ở lớp con.

Đặc điểm

- Phương thức override và được override phải có chung kiểu trả về, tên phương thức và danh sách tham số.
- Override chỉ xảy ra giữa các lớp có quan hệ kế thừa.
- Một phương thức ở lớp cha được override ở lớp con thì phương thức override ở lớp con không được phép thu hẹp tầm vực của phương thức đó ở lớp cha.
- Phương thức ở lớp cha được override ở lớp con thì phương thức override ở lớp con không được phép phát sinh những ngoại lệ kiểm tra (checked exception) khác loại hoặc không có quan hệ kế thừa với các ngoại lệ được ném ra từ phương thức đó ở lớp cha.
- Sử dụng từ khóa super để gọi phương thức được override ở lớp cha tại phương thức override ở lớp con.
Ví dụ:
package Overriding_Method;

class CBird{
  public void getInformation(){
     System.out.print("has 2 legs, can fly");
  }
}

public class CParrot extends CBird {
  //overriding getInformation() method of CBird
  public void getInformation(){
    System.out.println("Parrot");
    //using super keyword to call getInformation() of CBird
    super.getInformation();
  }
  public static void main(String [] args){
    CBird obj = new CParrot();
    obj.getInformation();
  }
}
Kết quả:
Parrot has 2 legs, can fly
Kết luận:
Quan sát dòng 18, ở đây, ta khởi tạo 1 tham chiếu kiểu CBird là obj tham chiếu tới 1 đối tượng CParrot. Khác với kỹ thuật overloading method, với overriding method, phương thức được máy ảo java quyết định gọi tại quá trình runtime dựa trên kiểu của đối tượng mà tham chiếu đó tham chiếu tới.

Một số lưu ý

Một phương thức final hoặc static không thể được override. Đặc biệt chú ý với phương thức static. 

Không có nhận xét nào

Được tạo bởi Blogger.