Tại sao Liên kết động lại quan trọng trong việc triển khai tính đa hình?
Tại sao Liên kết động lại quan trọng trong việc triển khai tính đa hình?

Video: Tại sao Liên kết động lại quan trọng trong việc triển khai tính đa hình?

Video: Tại sao Liên kết động lại quan trọng trong việc triển khai tính đa hình?
Video: Code C/C++ khi đi làm thực tế có đáng sợ như lời đồn? 2024, Tháng tư
Anonim

Ràng buộc động cho phép một lời gọi hàm thành viên được giải quyết tại thời điểm chạy, theo kiểu thời gian chạy của một tham chiếu đối tượng. Điều này cho phép mỗi lớp do người dùng xác định trong hệ thống phân cấp kế thừa có một thực hiện của một chức năng cụ thể.

Theo quan điểm này, đa hình giải thích vai trò của liên kết động trong việc thực hiện đa hình là gì?

Đây là những gì chúng tôi gọi là tĩnh ràng buộc : NS ràng buộc của tên xảy ra tại thời điểm biên dịch (tức là tĩnh). Cơ chế như vậy được gọi là ràng buộc động : NS ràng buộc tên cho một thực hiện xảy ra tại thời gian chạy (tức là năng động ). Ràng buộc động là cần thiết cho các ngôn ngữ lập trình hướng đối tượng để thực hiện đa hình.

Tương tự, việc sử dụng ràng buộc động là gì? Tĩnh ràng buộc sử dụng thông tin Loại (lớp trong Java) cho ràng buộc trong khi ràng buộc động sử dụng đối tượng để giải quyết ràng buộc . Các phương thức quá tải được liên kết bằng cách sử dụng tĩnh ràng buộc trong khi các phương thức bị ghi đè được liên kết bằng cách sử dụng ràng buộc động trong thời gian chạy.

Sau đó, câu hỏi đặt ra là, có phải là đa hình liên kết động không?

Tính đa hình trong Java có hai loại: Thời gian biên dịch đa hình (tĩnh ràng buộc ) và Runtime đa hình ( ràng buộc động ). Một ví dụ quan trọng của đa hình là cách một lớp cha tham chiếu đến một đối tượng lớp con. Trên thực tế, bất kỳ đối tượng nào thỏa mãn nhiều hơn một mối quan hệ IS-A là đa hình trong tự nhiên.

Liên kết động hữu ích như thế nào trong rất tiếc?

Ràng buộc động đạt được bằng cách sử dụng các chức năng ảo. Con trỏ lớp cơ sở trỏ đến đối tượng lớp dẫn xuất. Và một hàm được khai báo là ảo trong lớp cơ sở, sau đó hàm khớp được xác định tại thời điểm chạy bằng cách sử dụng mục nhập bảng ảo. Các phần tử được chuyển như thế nào trong một hướng đối tượng ngôn ngữ lập trình ( OOP )?

Đề xuất: