Overriding Là Gì

  -  

Overloading (Nạp ck phương thức) cùng Overriding (ghi đè phương thức) là hai tư tưởng cơ bản trong xây dựng mà bất kể newbie nào cũng cần phân biệt. Vậy bọn chúng là gì? khác biệt thế nào? Hãy cùng Hybrid Technologies phân tích và tò mò trong nội dung bài viết này nhé!

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

Overloading là 1 kĩ thuật chất nhận được trong cùng một class gồm thể có tương đối nhiều phương thức thuộc tên nhưng không giống nhau về con số tham số hoặc kiểu dữ liệu tham số. Ví dụ chúng ta có hàm tinhTong dùng để cộng hai số nguyên. Khi muốn cộng cha số nguyên, chúng ta phải viết một hàm cùng với tên không giống (chẳng hạn tinhTong1) cùng truyền vào 3 số nguyên? Như vậy, code sẽ trở nên tinh vi hơn trong lúc hai hàm có cùng một mục đích là cộng các số nguyên lại cùng 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à truyền vào con số tham số khác biệt thì sẽ điện thoại tư vấn tới hàm có số lượng tham số tương ứng

*

Chú ý vào hành lang cửa số “Watch 1” ta thấy quý giá của hai đổi mới a với b lần lượt là quý giá trả về của hai hàm tinhTong(int a, int b) và hàm tinhTong(int a, int b, int c) 

Tương từ ta tất cả thể overload kiểu dữ liệu của tham số. Thay bởi vì hàm tinhTong cộng nhì số nguyên thì cũng rất có thể cộng nhì số thực, chỉ việc truyền vào 2 tham số dạng hình double.

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

*

Tương tự giá bán trị biến đổi c là giá trị trả về của hàm tinhTong(double a, double b) sau lúc truyền vào nhị tham số kiểu double.

*

Tạo constructor với số lượng tham số khác biệt cũng là một trong dạng của oveloading.

Xem thêm: Reset Rank Liên Quân Mùa 8 Hot Nhất, Đừng Bỏ Qua, Reset Rank Liên Quân Mùa 8

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

Overrding (tên rất đầy đủ là Method Overriding), được sử dụng trong trường hợp lớp con thừa kế từ lớp phụ vương và ao ước định nghĩa lại một cách thức đã xuất hiện ở lớp cha. Một lớp phụ vương thông thường có thể có khá nhiều lớp bé kế thừa, tuy nhiên phương thức ở lớp phụ vương có thể tương xứng với lớp bé này tuy vậy không cân xứng với lớp con khác, cho nên vì thế lớp con buộc phải ghi đè lại cách tiến hành đó cho phù hợp.

Ví dụ class Animal có phương thức animalSound đại diện cho tiếng kêu của cồn vật. Class Dog và Cat kế quá từ class Animal, dẫu vậy chó cùng mèo có tiếng kêu khác nhau nên phải implement phương thức animalSound cho mỗi lớp không giống nhau. Vì vậy rất cần phải ghi đè lại phương thức animalSound ở nhị lớp Dog cùng Cat bằng cách sử dụng trường đoản cú khóa override như sau(lưu ý ví dụ như minh họa sử dụng code C#, phần đông ngôn ngữ khác biệt sẽ overriding theo cú pháp khác nhau nhưng về bản chất là như nhau).

Xem thêm: Đăng Nhập Pubg Mobile - Playerunknown'S Battlegrounds

*

Ở hàm main sinh sản instance của class Animal, Dog và cat sẽ cho tác dụng như sau.

*

=> Kết quả

*

So sánh

OverloadingOverriding
Thể hiện nhiều hình tại compile timeThể hiện nhiều hình tại runtime
Thêm hành vi đến phương thứcThay thay đổi hành vi lúc này của phương thức
Có thể khác biệt 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ố phải giống nhau
Xảy ra trong và một classXảy ra ở cả hai class gồm quan hệ kế thừa

 

Hy vọng qua bài viết này, các bạn sẽ hiểu rõ rộng và không còn nhầm lẫn thân hai khái niệm trên. Chúc các bạn luôn thành công!