Override (ghi đè phương thức) và Overload (Nạp ông chồng phương thức) là nhì định nghĩa cơ phiên bản nhập Java nhưng mà bất kì người nào là khi mới nhất chính thức với thiết kế cũng cần được phân biệt. Vậy bọn chúng là gì và không giống nhau ra sao? Hãy nằm trong CodeGym Hà Thành phân tách và mò mẫm hiểu nhập nội dung bài viết này nhé!
Bạn đang xem: override là gì
> Đọc thêm: Khóa học tập thiết kế Java
Override (ghi đè phương thức) là gì?
Ghi đè phương thức
Override là 1 trong những chức năng được cho phép một tấm con cái cung ứng một tổ chức thực hiện ví dụ của cách thức và đã được cung ứng vị một trong số lớp phụ thân của chính nó. Nói một cách tiếp theo, ghi đè cách thức là nếu như lớp con cái sở hữu một hoặc nhiều cách thức như là với cùng một trong số lớp phụ thân của chính nó.
Để thu được xem nhiều hình bên trên runtime, tao sử dụng ghi đè cách thức (override).
Các quy lăm le về ghi đè nhập Java
- Danh sách thông số cần trùng nhau, loại độ quý hiếm trả về cần tương mến.
- Phương thức đè ko được hạn chế quyền truy nhập đối với phiên phiên bản của lớp phụ thân.
- Nói cách tiếp theo, quyền truy nhập nhưng mà phiên phiên bản của lớp con cái được cho phép cần vị hoặc rộng lớn bao la phiên phiên bản của lớp phụ thân. Ta ko thể cài đặt đè một cách thức public vị một phiên phiên bản private. Nếu ko, trường hợp xẩy ra là 1 trong những điều gọi cách thức và đã được trình biên dịch gật đầu vì thế tưởng là cách thức public tuy nhiên cho tới khi nó chạy lại bị máy ảo kể từ chối vì thế phiên phiên bản được gọi lại là private.
- Phải là mối liên hệ IS-A (kế thừa).
- Các cách thức final, static, private ko thể cài đặt đè.
Ví dụ thực tiễn về override (ghi đè phương thức) nhập Java
class Person { public void seeCockroaches() { } } class Women extends Person { @Override public void seeCockroaches() { System.out.println("Woman see cockroaches: Screaming and run rẩy away"); } } class Man extends Person { @Override public void seeCockroaches() { System.out.println("Man see cockroaches: Beat the cockroaches"); } } class Test { public static void main(String[] args) { Person man = new Man(); Person women = new Women(); man.seeCockroaches(); women.seeCockroaches(); } }
Kết ngược sau khoản thời gian chạy lịch trình bên trên là:
Man see cockroaches: Beat the cockroaches Woman see cockroaches: Scream and run rẩy away
Overload (nạp ông chồng phương thức) là gì?
Nạp ông chồng cách thức là sở hữu vài ba cách thức trùng thương hiệu tuy nhiên không giống nhau về đối số nhập nằm trong 1 lớp. Nạp ông chồng cách thức được cho phép tao tạo ra nhiều phiên phiên bản của một cách thức, từng phiên phiên bản gật đầu một list đối số không giống nhau, nhằm mục tiêu tạo ra tiện nghi mang đến việc gọi cách thức.
Để nhận được tinh nghịch nhiều hình bên trên compile time, tao sử dụng hấp thụ ông chồng cách thức (overload).
Các quy tắc hấp thụ chồng
- Các cách thức overloaded cần nằm trong thương hiệu tuy nhiên không giống nhau ở những thông số.
- Chúng rất có thể được khái niệm nằm trong hoặc không giống loại tài liệu trả về.
- Chúng rất có thể được khái niệm nằm trong hoặc không giống access modifier.
- Các cách thức chỉ không giống nhau ở loại tài liệu trả về hoặc access modifier thì ko được gọi là overloaded .
Ví dụ thực tiễn về overload (nạp ông chồng phương thức) nhập Java
public class Bird { public String fly(String scream) { return "Birds fly away"; } public String fly(String scream, String location) { return "Birds fly away"; } public void fly(String cream, String location, int distance) { System.out.println("Birds fly away"); } public static void main(String[] args) { Bird bird = new Bird(); System.out.println(bird.fly("AAA")); System.out.println(bird.fly("AAA", "riverside")); bird.fly("AAA", "riverside", 2); } }
Kết ngược sau khoản thời gian chạy lịch trình bên trên là:
Birds fly away Birds fly away Birds fly away
Phân biệt thân thiện overload và override
Phân biệt override và overload
Override | Overload | |
Hành vi | Thay thay đổi hành động lúc này của cách thức. | Thêm hoặc không ngừng mở rộng mang đến hành động của cách thức. |
Đa hình | Thể hiện nay tính nhiều hình bên trên run rẩy time. | Thể hiện nay tính nhiều hình bên trên compile time. |
Danh sách tham ô số | Danh sách thông số cần như là nhau. | Danh sách thông số rất có thể không giống nhau. |
Quyền truy cập | Phương thức ghi đè ở lớp con cái cần sở hữu quyền truy vấn vị hoặc to hơn cách thức được ghi đè ở lớp phụ thân. | Phương thức hấp thụ ông chồng rất có thể sở hữu quyền truy vấn không giống nhau. |
Giá trị trả về | Giá trị trả về cần phải sở hữu loại như là nhau. | Giá trị trả về rất có thể sở hữu loại không giống nhau. |
Phạm vi | Xảy rời khỏi thân thiện 2 lớp sở hữu mối liên hệ tiếp thừa | Xảy rời khỏi nhập phạm vi nằm trong 1 lớp. |
Tổng kết
Bài viết lách bên trên phía trên đang được ra mắt về Override, Overload và sự khác lạ thân thiện bọn chúng, hy vọng sẽ hỗ trợ ích không ít mang đến chúng ta hiểu nội dung bài viết này. Hãy đón hiểu những nội dung bài viết và mò mẫm hiểu tăng về những ngôn từ thiết kế không giống qua chuyện những khóa huấn luyện và đào tạo thiết kế tại CodeGym Hà Nội chúng ta nhé!
Xem thêm: game show là gì
Bình luận