Overriding và overloading trong java

Overloading (Nạp ck pmùi hương thức) cùng Overriding (ghi đtrần pmùi hương thức) là nhị khái niệm cơ bạn dạng vào thiết kế mà lại bất kì newbie nào thì cũng đề xuất rành mạch. Vậy chúng là gì? Khác nhau núm nào? Hãy cùng bản thân phân tích với tò mò nhé.

Bạn đang xem: Overriding và overloading trong java

Overloading (Nạp ông xã phương thức) là gì?

Overloading là 1 trong kinh nghiệm cho phép vào cùng một class hoàn toàn có thể có khá nhiều thủ tục thuộc thương hiệu tuy vậy không giống nhau về số lượng tmê mẩn số hoặc phong cách dữ liệu tham số. ví dụ như bọn họ có hàm tinhTong dùng làm cùng hai số nguyên ổn. khi mong muốn cùng cha số nguyên ổn dễ thường tôi lại đề xuất viết một hàm với tên khác(ví dụ điển hình tinhTong1) và truyền vào 3 số ngulặng xuất xắc sao? vì vậy thì code sẽ trnghỉ ngơi yêu cầu phức hợp hơn trong lúc nhì hàm có cùng một mục tiêu là cộng những số nguim lại với nhau. Vậy nên chúng ta vẫn overload hàm tinhTong như sau:

*

Khi Gọi hàm tinhTong và truyền vào số lượng tmê mẩn số khác biệt thì vẫn Hotline tới hàm bao gồm số lượng tham số tương ứng

*

Crúc ý vào hành lang cửa số "Watch 1" ta thấy cực hiếm của nhị phát triển thành a và b thứu tự là quý hiếm trả về của nhì hàm tinhTong(int a, int b) với hàm tinhTong(int a, int b, int c)

Tương tự chứ đọng ta có thể overload giao diện tài liệu của tsi mê số. Thay vì hàm tinhTongcùng hai số nguyên thì tôi cũng có thể cộng hai số thực, chỉ việc truyền vào 2 ttê mê số vẻ bên ngoài double.

*

Tương tự giá trị thay đổi c là cực hiếm trả về của hàm tinhTong(double a, double b) sau khoản thời gian truyền vào nhị tham số hình dáng double.

Xem thêm: ►Cách Bật Chức Năng Hibernate Trong Win 7 /8/10, Bật, Tắt Chế Độ Hibernate Trong Windows 7

*

Tạo constructor với con số tmê mẩn số không giống nhau cũng là một trong những dạng của oveloading.

Overriding (Ghi đnai lưng phương thơm thức) là gì?

Overrding (thương hiệu vừa đủ là Method Overriding), được sử dụng trong trường đúng theo lớp bé kế thừa trường đoản cú lớp cha và ao ước quan niệm lại một cách làm đang có mặt làm việc lớp phụ thân. Một lớp cha thông thường có thể có rất nhiều lớp con kế thừa, tuy vậy phương thức nghỉ ngơi lớp phụ thân hoàn toàn có thể tương xứng cùng với lớp bé này tuy thế ko cân xứng với lớp con không giống, cho nên lớp nhỏ nên ghi đè cổ lại phương thức đó đến phù hợp. lấy ví dụ như class Animal tất cả phương thức animalSound đại diện thay mặt đến giờ đồng hồ kêu của động vật. Class Dog cùng Cat thừa kế tự class Animal, tuy thế chó và mèo gồm giờ kêu khác nhau bắt buộc cần implement phương thức animalSound cho từng lớp không giống nhau. Vì vậy cần phải ghi đè lại phương thức animalSound nghỉ ngơi hai lớp Dog và Cat bằng phương pháp thực hiện từ khóa override như sau(chú ý ví dụ minch họa sử dụng code C#, hầu hết ngôn ngữ khác nhau sẽ overriding theo cú pháp khác nhau nhưng về bản chất là như nhau).

Xem thêm: Nền Tảng Là Gì - Kinh Doanh Nền Tảng

*

Ở hàm main chế tạo ra instance của class Animal, Dog với Cat vẫn mang đến kết quả như sau.

*

=> Kết quả

*

So sánh

OverloadingOverriding
Thể hiện tại đa hình tại compile timeThể hiện tại nhiều hình trên runtime
Thêm hành động đến pmùi hương thứcTxuất xắc đổi hành động ngày nay của pmùi hương thức
cũng có thể khác biệt về số lượng với dạng hình tài liệu của tsi mê sốSố lượng với kiểu dáng dữ liệu của tmê mệt số đề xuất kiểu như nhau
Xảy ra vào cùng một classXảy ra ở cả hai class bao gồm quan hệ nam nữ kế thừa

Hi vọng qua nội dung bài viết này bằng hữu đã hiểu rõ hơn với không hề nhầm lẫn giữa nhị có mang này nữa. Thanks ~