Hỏi đáp

” Override Là Gì ? Định Nghĩa, Ví Dụ, Giải Thích Overrides Là Gì – viettingame

Overloading (Nạp ông xã phương thức) và Overriding (ghi đè phương thức) là hai quan điểm cơ phiên bản trong lập trình mà bất kì newbie nào thì cũng cần phân biệt. Vậy chúng là gì? Không giống nhau thế nào? Nào hãy cùng mình phân tích và tìm hiểu nhé.

Đang xem: Override là gì

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

Overloading là một kĩ thuật cho phép trong cùng một class thậm chí với nhiều phương thức cùng tên nhưng không giống nhau về số lượng tham số hoặc kiểu dữ liệu tham số. Ví dụ chúng ta với hàm tinhTong sử dụng để cùng hai số nguyên. Lúc muốn cùng ba số nguyên ko lẽ tôi lại phải 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ố nguyên hay sao? Như vậy thì code sẽ trở nên phức tạp hơn trong lúc hai hàm với cùng một mục đích là cùng những số nguyên lại với nhau. Như vậy chúng ta sẽ overload hàm tinhTong như sau:

*

Lúc gọi hàm tinhTong và truyền vào số lượng tham số không giống nhau thì sẽ gọi tới hàm với số lượng tham số tương ứng

*

Ghi chú vào cửa sổ “Watch 1” ta thấy giá trị của hai biến a và b lần lượt là giá trị 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ự chứ ta thậm chí overload kiểu dữ liệu của tham số. Thay vì như thế hàm tinhTongcùng hai số nguyên thì tôi cũng thậm chí cùng hai số thực, chỉ việc truyền vào 2 tham số kiểu double.

*

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

Xem thêm: tend to be là gì

*

Tạo constructor với số lượng 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 vừa đủ là Method Overriding), được sử dụng trong trường hợp lớp con kế thừa từ lớp phụ thân và muốn định nghĩa lại một phương thức đã xuất hiện ở lớp phụ thân. Một lớp phụ thân thường thì thậm chí với nhiều lớp con kế thừa, tuy nhiên phương thức ở lớp phụ thân thậm chí thích nghi với lớp con này nhưng vẫn không thích nghi với lớp con khác, do đó lớp con cần ghi đè lại phương thức đó cho thích nghi. Ví dụ class Animal với phương thức animalSound thay mặt đại diện cho tiếng kêu của động vật. Class DogCat kế thừa từ class Animal, nhưng chó và mèo với tiếng kêu không giống nhau nên phải implement phương thức animalSound cho từng lớp không giống nhau. Vì như thế vậy cần phải ghi đè lại phương thức animalSound ở hai lớp Dog và Cat bằng phương pháp sử dụng từ khóa override như sau(lưu ý ví dụ minh họa 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 chất là như nhau).

Xem thêm: #1 : Top 24+ trò chơi Sinh Tồn Offline Hay Cho Pc Được Ưa Thích Nhất

*

Ở hàm main tạo instance của class Animal, Dog và Cat sẽ cho thành tựu như sau.

*

=> Thành tựu

*

So sánh

Overloading Overriding
Thể hiện đa hình tại compile time Thể hiện đa hình tại runtime
Thêm hành vi cho phương thức Thay đổi hành vi hiện tại của phương thức
Mà thậm chí không giống nhau về số lượng và kiểu dữ liệu của tham số Số lượng và kiểu dữ liệu của tham số phải giống nhau
Xẩy ra trong cùng một class Xẩy ra ở 2 class với quan hệ kế thừa

Mong muốn qua nội dung bài viết này bạn bè sẽ làm rõ hơn và không hề nhầm lẫn giữa hai quan điểm này nữa. Thanks ~

Về Viettingame.com

Viettingame.com - Chuyên trang web tổng hợp những thông tin hữu ích trên internet như thông tin về game, tin tổng hợp
Xem tất cả các bài viết của Viettingame.com →

Trả lời

Email của bạn sẽ không được hiển thị công khai.