Overload Là Gì

     

Overloading (Nạp ông chồng phương thức) cùng Overriding (ghi đè phương thức) là hai định nghĩa cơ phiên bản trong lập trình sẵn mà bất kể newbie nào cũng cần phân biệt. Vậy chúng là gì? khác nhau thế nào? Hãy cùng mình đối chiếu và mày mò nhé.

Bạn đang xem: Overload là gì

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

Overloading là một kĩ thuật có thể chấp nhận được trong và một class tất cả thể có khá nhiều phương thức cùng tên nhưng khác nhau về số lượng tham số hoặc kiểu dữ liệu tham số. Ví dụ chúng ta có hàm tinhTong dùng làm cộng nhị số nguyên. Khi mong mỏi cộng cha số nguyên có lẽ nào tôi lại đề nghị viết một hàm với thương hiệu khác(chẳng hạn tinhTong1) cùng truyền vào 3 số nguyên hay sao? vì vậy thì code đang trở nên phức tạp hơn trong những khi hai hàm bao gồm cùng một mục tiêu là cộng các số nguyên lại với nhau. Như vậy bọn họ sẽ overload hàm tinhTong như sau:

*

Khi điện thoại tư vấn hàm tinhTong với truyền vào con số tham số không giống nhau thì sẽ điện thoại tư vấn tới hàm có con số tham số tương ứng

*

Chú ý vào cửa sổ "Watch 1" ta thấy quý giá của hai đổi thay a cùng b lần lượt là cực 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ứ ta hoàn toàn có thể overload kiểu tài liệu của tham số. Thay vì chưng hàm tinhTongcộng hai số nguyên thì tôi cũng rất có thể cộng nhì số thực, chỉ việc truyền vào 2 tham số hình dạng double.

*

Tương tự giá trị biến chuyển c là cực hiếm trả về của hàm tinhTong(double a, double b) sau khi truyền vào hai tham số loại double.

Xem thêm: Một Gói Ngũ Cốc Bao Nhiêu Calo ? Lượng Calo Trong 1 Ly Ngũ Cốc

*

Tạo constructor với con số tham số không giống nhau cũng là một dạng của oveloading.

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

Overrding (tên tương đối đầy đủ là Method Overriding), được áp dụng trong trường hòa hợp lớp con thừa kế từ lớp cha và ý muốn định nghĩa lại một cách làm đã có mặt ở lớp cha. Một lớp thân phụ thông thường sẽ có thể có không ít lớp nhỏ kế thừa, tuy vậy phương thức sinh hoạt lớp cha có thể phù hợp với lớp bé này tuy nhiên không cân xứng với lớp nhỏ khác, cho nên vì thế lớp con đề nghị ghi đè lại phương thức đó cho phù hợp. Ví dụ class Animal gồm phương thức animalSound thay mặt cho giờ kêu của động vật. Class Dog cùng Cat thừa kế từ class Animal, tuy thế chó cùng mèo bao gồm tiếng kêu khác nhau nên yêu cầu implement cách thức animalSound cho mỗi lớp không giống nhau. Bởi vậy rất cần được ghi đè lại thủ tục animalSound ở hai lớp Dog và Cat bằng cách sử dụng từ khóa override như sau(lưu ý ví dụ minh họa áp dụng code C#, phần đông 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: Cách Làm Sữa Chua Dẻo Bằng Bột Rau Câu Ăn Cực Ngon Và Lạ Miệng

*

Ở hàm main tạo thành instance của class Animal, Dog và cat sẽ cho công dụng như sau.

*

=> Kết quả

*

So sánh

OverloadingOverriding
Thể hiện đa hình tại compile timeThể hiện nhiều hình trên runtime
Thêm hành vi mang đến phương thứcThay thay đổi hành vi bây giờ của phương thức
Có thể không giống nhau về con số và kiểu tài liệu của tham sốSố lượng và kiểu tài liệu của tham số cần giống nhau
Xảy ra trong và một classXảy ra ở 2 class tất cả quan hệ kế thừa

Hi vọng qua nội dung bài viết này anh em sẽ nắm rõ hơn và không còn nhầm lẫn thân hai quan niệm này nữa. Thanks ~