Overloading (Nạp chồng phương thức) and Overriding (ghi đè phương thức) là hai khái niệm cơ bản trong lập trình mà bất kỳ newbie nào cũng cần phải nhận cảm nhận. Vậy chúng là gì? Không giống nhau ra làm sao? Hãy cùng mình nghiên cứu và phân tích and tìm hiểu nhé.
Bài Viết: Override là gì
Overloading (Nạp chồng phương thức) là gì?
Overloading là một trong kĩ thuật cho phép trong cùng một class rất có khả năng có nhiều phương pháp cùng tên nhưng không giống nhau về con số tham số hoặc kiểu tài liệu tham số. Ví dụ chúng ta có hàm tinhTong cần sử dụng để cộng hai số nguyên. Khi muốn cộng ba số nguyên không lẽ tôi lại bắt buộc phải viết một hàm với tên khác(ví dụ điển hình tinhTong1) and truyền vào 3 số nguyên hay sao? Như vậy thì code sẽ cũng trở nên khó khăn hơn trong lúc hai hàm có cùng một mục tiêu là cộng các số nguyên lại với nhau. Như vậy những các bạn sẽ overload hàm tinhTong như sau:
Khi gọi hàm tinhTong and truyền vào con số tham số không giống nhau thì sẽ gọi tới hàm có con số tham số khớp ứng
Cảnh báo nhắc nhở vào hành lang cửa số “Watch 1” ta cảm nhận thấy giá cả của hai biến a and b lần lượt là giá cả trả về của hai hàm tinhTong(int a, int b) and hàm tinhTong(int a, int b, int c)
Giống hệt như chứ ta rất có khả năng overload kiểu tài liệu của tham số. Thay thế sửa chữa vì hàm tinhTongcộng hai số nguyên thì tôi cũng xuất hiện thể cộng hai số thực, chỉ việc truyền vào 2 tham số kiểu double.
Giống hệt như giá cả biến c là giá cả trả về của hàm tinhTong(double a, double b) sau thời điểm truyền vào hai tham số kiểu double.
Xem Ngay: Broadcast Là Gì – Nghĩa Của Từ Broadcast
Tạo constructor với con số lượng tham số không giống nhau cũng là một trong dạng của oveloading.
Overriding (Ghi đè phương thức) là gì?
Overrding (tên không thiếu là Method Overriding), được cần sử dụng trong trường hợp lớp con thừa kế từ lớp cha and muốn định nghĩa lại một phương thức đã có không ít mặt ở lớp cha. Một lớp cha đôi chút rất có khả năng có không ít lớp con thừa kế, thế nhưng phương thức ở lớp cha rất có khả năng hợp lí với lớp con này nhưng không hợp lí với lớp con khác, chính vì như thế lớp con cần ghi đè lại từ thời điểm cách đây cho hợp lí. Ví dụ class Animal có phương thức animalSound đại diện cho tiếng kêu của động vật hoang dã. Class Dog and Cat thừa kế từ class Animal, nhưng chó and mèo có tiếng kêu không giống nhau nên cần phải implement phương thức animalSound cho từng lớp không giống nhau. Chính vì vậy rất cần được ghi đè lại phương thức animalSound ở 2 lớp Dog and Cat bằng cách thức cần sử dụng từ khóa override như sau(để ý ví dụ minh họa cần sử dụng code C#, những ngôn từ không giống nhau sẽ overriding theo cú pháp không giống nhau nhưng về thực tế là đồng bộ).
Xem Ngay: Redneck Là Gì – Redneck In Vietnamese
Ở hàm main tạo instance của class Animal, Dog and Cat sẽ cho công dụng như sau.
=> Công dụng
Đối chiếu
Overloading Overriding Bộc lộ đa hình tại compile time Bộc lộ đa hình tại runtime Thêm hành động cho phương thức Căn chỉnh hành động ngày này của phương thức Có khả năng không giống nhau về con số and kiểu tài liệu của tham số Con số and kiểu tài liệu của tham số phải giống nhau Xẩy ra trong cùng một class Xẩy ra ở cả hai class có mối quan hệ thừa kế
Mong muốn qua nội dung bài viết này bạn bè sẽ làm rõ hơn and đã hết nhầm lẫn giữa hai khái niệm này nữa. Thanks ~
Thể Loại: Giải bày trình diễn Kiến Thức Cộng Đồng