Sự khác biệt giữa Ghi đè và Quá tải trong C

Mục lục:

Sự khác biệt giữa Ghi đè và Quá tải trong C
Sự khác biệt giữa Ghi đè và Quá tải trong C

Video: Sự khác biệt giữa Ghi đè và Quá tải trong C

Video: Sự khác biệt giữa Ghi đè và Quá tải trong C
Video: Đây chính là NGUYÊN NHÂN LÀM CHO ổ C của bạn nhanh đầy 2024, Tháng mười hai
Anonim

Sự khác biệt chính - Ghi đè và Quá tải trong C

Sự khác biệt chính giữa ghi đè và nạp chồng trong Clà ràng buộc của lệnh gọi phương thức ghi đè với định nghĩa của nó xảy ra trong thời gian chạy trong khi ràng buộc của lệnh gọi phương thức được nạp chồng với định nghĩa của nó xảy ra tại thời điểm biên dịch.

Clà một ngôn ngữ lập trình đa năng được phát triển bởi Microsoft. Ưu điểm chính của Clà nó hỗ trợ Lập trình hướng đối tượng (OOP). Một trụ cột của OOP là Đa hình. Nó cung cấp cho một đối tượng có nhiều hành vi. Có hai loại trong Đa hình được gọi là ghi đè và nạp chồng. Bài viết này thảo luận về sự khác biệt giữa ghi đè phương thức và nạp chồng trong C.

Ghi đè trong Clà gì?

Có một khái niệm quan trọng khác trong OOP là tính kế thừa. Nó là sử dụng các thuộc tính và phương thức của lớp đã tồn tại. Nó cải thiện khả năng tái sử dụng mã. Lớp đã tồn tại là lớp cơ sở và lớp mới được gọi là lớp dẫn xuất. Trong ghi đè tính đa hình, cần có một lớp cơ sở và một lớp dẫn xuất. Sự ràng buộc của lời gọi phương thức được ghi đè với định nghĩa xảy ra trong thời gian chạy. Một ví dụ như sau.

Sự khác biệt giữa ghi đè và ghi đè trong C
Sự khác biệt giữa ghi đè và ghi đè trong C

Hình 01: Chương trình Ccó ghi đè

Theo chương trình trên, lớp Shape là lớp cơ sở và nó chứa phương thức hiển thị. Class Rectangle và Triangle là các lớp dẫn xuất. Các lớp dẫn xuất này cũng có cùng một phương thức hiển thị với các triển khai riêng của chúng.

Đầu tiên, biến tham chiếu obj được tạo. Nó trỏ đến đối tượng Shape. Vì vậy, phương thức hiển thị của lớp Shape sẽ thực thi. Sau đó, biến tham chiếu trỏ đến đối tượng Rectangle. Vì vậy, phương thức hiển thị của lớp Rectangle sẽ thực thi. Cuối cùng, biến tham chiếu trỏ đến đối tượng Triangle. Vì vậy, phương thức hiển thị của lớp Triangle sẽ thực thi. Phương thức hiển thị của lớp cơ sở bị ghi đè bởi các phương thức hiển thị của các lớp dẫn xuất.

Phương thức chạy được quyết định trong thời gian chạy. Lớp Shape được viết bằng từ khóa ‘virtual’. Các lớp Rectangle và Triangle được viết bằng từ khóa ‘override’. Nếu các từ khóa này không được sử dụng, đầu ra sẽ in ra nội dung của phương thức hiển thị của lớp Shape cho tất cả.

Overloading trong Clà gì?

Trong nạp chồng, nhiều phương thức có cùng tên nhưng có các tham số khác nhau. Các tham số có thể thuộc nhiều loại khác nhau. Các phương thức cũng có thể có một số tham số khác nhau. Quá tải phương thức xảy ra trong cùng một lớp. Sự ràng buộc của các phương thức được nạp chồng với định nghĩa xảy ra tại thời điểm biên dịch. Tham khảo chương trình Cdưới đây.

Sự khác biệt chính giữa ghi đè và ghi đè trong C
Sự khác biệt chính giữa ghi đè và ghi đè trong C

Hình 02: Chương trình Cbị quá tải

Theo chương trình trên, lớp A có hai phương thức trùng tên gọi là sum. Chúng có nhiều loại thông số khác nhau. Trong chương trình chính, một đối tượng của A được tạo. Tổng (2, 3) sẽ gọi phương thức tổng với số nguyên. Tổng (5.1, 7.94) sẽ gọi phương thức sum với các giá trị kép. Cả hai phương thức đều có cùng tên và cùng một số tham số. Nhưng các loại tham số là khác nhau. Phương thức yêu cầu được gọi tương ứng. Quá tải cũng có thể xảy ra nếu tên phương thức và kiểu tham số giống nhau nhưng số lượng tham số khác nhau.

Sự giống nhau giữa Ghi đè và Ghi đè trong Clà gì?

Cả Ghi đè và Ghi đè trong Cđều là các loại đa hình

Sự khác biệt giữa Ghi đè và Ghi đè trong Clà gì?

Overriding so với Overloading trong C

Ghi đè trong Clà cung cấp một triển khai cụ thể trong một phương thức lớp dẫn xuất cho một phương thức đã tồn tại trong lớp cơ sở. Overloading trong Clà tạo nhiều phương thức có cùng tên với các cách triển khai khác nhau.
Thông số
Trong COverriding, các phương thức có cùng tên, cùng kiểu tham số và cùng số lượng tham số. Trong COverloading, các phương thức có cùng tên nhưng có số lượng tham số khác nhau hoặc loại tham số khác.
Xuất hiện
Trong C, ghi đè xảy ra trong lớp cơ sở và lớp dẫn xuất. Trong C, quá tải xảy ra trong cùng một lớp.
Thời gian ràng buộc
Sự ràng buộc của lệnh gọi phương thức được ghi đè với định nghĩa của nó xảy ra trong thời gian chạy. Sự ràng buộc của lời gọi phương thức được nạp chồng với định nghĩa của nó xảy ra tại thời điểm biên dịch.
Từ đồng nghĩa
Ghi đè được gọi là đa hình thời gian chạy, đa hình động hoặc liên kết muộn. Quá tải được gọi là đa hình thời gian biên dịch, đa hình tĩnh hoặc liên kết sớm.

Tóm tắt - Ghi đè so với Quá tải trong C

Overriding và Overloading là hai loại đa hình. Sự khác biệt giữa ghi đè và nạp chồng trong Clà ràng buộc của lệnh gọi phương thức được ghi đè với định nghĩa của nó xảy ra trong thời gian chạy trong khi ràng buộc của lệnh gọi phương thức được nạp chồng với định nghĩa của nó xảy ra tại thời điểm biên dịch.

Đề xuất: