Sự khác biệt chính - Ràng buộc sớm và muộn
Ràng buộc sớm và Ràng buộc muộn là hai khái niệm liên quan đến Đa hình. Ràng buộc sớm xảy ra tại thời điểm biên dịch trong khi Liên kết muộn xảy ra trong thời gian chạy. Sự khác biệt chính giữa Liên kết sớm và Trễ là ở chỗ, Liên kết sớm sử dụng thông tin lớp để giải quyết việc gọi phương thức trong khi Liên kết muộn sử dụng đối tượng để giải quyết việc gọi phương thức.
Ngôn ngữ lập trình như Java hỗ trợ Lập trình hướng đối tượng (OOP). Nó là một mô hình cho phép xây dựng chương trình hoặc phần mềm bằng cách sử dụng các đối tượng. Có nhiều đối tượng trong phần mềm. Các đối tượng này được kết nối với nhau và truyền thông điệp bằng các phương thức. Mọi đối tượng đều có đặc điểm và hành vi. Các đặc tính được mô tả bởi các thuộc tính hoặc thuộc tính. Các hành vi được mô tả bằng cách sử dụng các phương pháp. Đối tượng Sinh viên có thể có các đặc điểm như tên, tuổi và chúng được thể hiện bằng các thuộc tính. Đối tượng Sinh viên có thể có các hành vi như nghiên cứu và đọc, và chúng được biểu diễn bằng các phương thức. Một trụ cột chính của OOP là Đa hình. Nó cho phép một đối tượng hoạt động theo nhiều cách. Ràng buộc sớm và Ràng buộc muộn là hai khái niệm trong Đa hình. Các phương pháp quá tải được liên kết bằng cách sử dụng liên kết sớm. Các phương thức ghi đè được liên kết bằng cách sử dụng liên kết muộn.
Ràng buộc sớm là gì?
Trong Early Binding, thông tin lớp được sử dụng để giải quyết việc gọi phương thức. Liên kết sớm xảy ra tại thời điểm biên dịch. Nó còn được gọi là ràng buộc tĩnh. Trong quá trình này, ràng buộc xảy ra trước khi chương trình thực sự chạy. Các phương pháp quá tải được liên kết bằng cách sử dụng liên kết sớm. Tham khảo chương trình bên dưới.
Hình 01: Lớp Tính toán
Hình 02: Chương trình chính cho ràng buộc sớm
Theo chương trình trên, lớp Tính toán chứa một phương thức add nhận hai giá trị nguyên và một phương thức add khác nhận hai giá trị kép. Trong chương trình chính, một đối tượng kiểu Tính toán được tạo. Khi truyền hai số nguyên cho phương thức add, nó sẽ gọi phương thức add chấp nhận hai số nguyên. Khi truyền hai giá trị kép cho phương thức add, nó sẽ gọi phương thức tương ứng với hai giá trị kép. Quá trình ràng buộc này xảy ra tại thời điểm biên dịch. Tất cả thông tin bắt buộc đều được biết trước thời gian chạy, do đó, nó làm tăng hiệu quả của chương trình và tốc độ thực thi.
Trễ hạn là gì?
Trong Late Binding, đối tượng được sử dụng để giải quyết việc gọi phương thức. Ràng buộc muộn xảy ra trong thời gian chạy. Nó còn được gọi là ràng buộc động. Trong quá trình này, ràng buộc xảy ra khi thực hiện chương trình. Các phương thức ghi đè được liên kết bằng cách sử dụng liên kết muộn. Tham khảo chương trình bên dưới.
Hình 03: Lớp Hình dạng
Hình 04: Lớp Circle
Hình 05: Lớp Tam giác
Hình 06: Chương trình chính cho Trùm muộn
Theo chương trình trên, lớp Shape có phương thức vẽ. Lớp Circle và lớp Triangle mở rộng lớp Shape. Do đó, hai lớp này có thể kế thừa các thuộc tính và phương thức của lớp Shape. Lớp Hình dạng là lớp cơ sở. Các lớp Circle và Triangle là các lớp dẫn xuất. Lớp Circle và lớp Triangle cũng có phương thức vẽ với các triển khai riêng của chúng. Vì vậy, phương thức draw trong lớp Shape bị ghi đè bởi các phương thức draw của các lớp dẫn xuất.
Trong chương trình chính, một biến tham chiếu s kiểu Shape được tạo. Tại thời điểm biên dịch, trình biên dịch sẽ chỉ tham chiếu đến phương thức vẽ của lớp cơ sở. Trong thời gian chạy, các phương thức vẽ khác nhau sẽ thực thi. Đầu tiên, s sẽ trỏ đến đối tượng kiểu Shape. Vì vậy, phương thức vẽ của lớp Shape được gọi. Sau đó, s sẽ trỏ đến đối tượng kiểu Circle, và nó sẽ gọi phương thức vẽ của lớp Circle. Cuối cùng, s sẽ trỏ đến đối tượng kiểu Triangle, và nó sẽ gọi phương thức draw trong lớp Triangle. Các phương thức được gọi tùy thuộc vào các đối tượng. Do đó, đối tượng được sử dụng để giải quyết việc gọi phương thức trong Late Binding. Thông tin cần thiết cho liên kết được cung cấp tại thời điểm chạy, vì vậy tốc độ thực thi chậm hơn so với liên kết sớm.
Sự giống nhau giữa Ràng buộc sớm và Ràng buộc muộn là gì?
Cả Ràng buộc sớm và Ràng buộc muộn đều liên quan đến tính đa hình vốn là trụ cột của OOP
Sự khác biệt giữa ràng buộc sớm và ràng buộc muộn là gì?
Ràng buộc sớm và Ràng buộc muộn |
|
Quá trình sử dụng thông tin lớp để giải quyết việc gọi phương thức xảy ra tại thời điểm biên dịch được gọi là Early Binding. | Quá trình sử dụng đối tượng để giải quyết việc gọi phương thức xảy ra tại thời điểm chạy được gọi là Trói buộc muộn. |
Thời gian ràng buộc | |
Early Binding xảy ra tại thời điểm biên dịch. | Trễ ràng buộc xảy ra vào thời gian chạy. |
Chức năng | |
Early Binding sử dụng thông tin lớp để giải quyết việc gọi phương thức. | Late Binding sử dụng đối tượng để giải quyết việc gọi phương thức. |
Từ đồng nghĩa | |
Early Binding còn được gọi là liên kết tĩnh.. | Ràng buộc muộn còn được gọi là ràng buộc động. |
Xuất hiện | |
Các phương pháp quá tải được liên kết bằng cách sử dụng liên kết sớm. | Các phương thức ghi đè được liên kết bằng cách sử dụng ràng buộc muộn. |
Tốc độ thực thi | |
Tốc độ thực thi nhanh hơn khi ràng buộc sớm. | Tốc độ thực thi thấp hơn khi ràng buộc muộn. |
Tóm tắt - Ràng buộc sớm và muộn
OOP được sử dụng phổ biến để phát triển phần mềm. Một trụ cột chính của OOP là tính đa hình. Ràng buộc sớm và Ràng buộc muộn có liên quan đến điều đó. Liên kết sớm xảy ra tại thời điểm biên dịch trong khi Liên kết muộn xảy ra trong thời gian chạy. Trong quá trình nạp chồng phương thức, liên kết xảy ra bằng cách sử dụng liên kết sớm. Trong ghi đè phương thức, liên kết xảy ra bằng cách sử dụng liên kết trễ. Sự khác biệt giữa Early Binding và Late Binding là Early Binding sử dụng thông tin lớp để giải quyết việc gọi phương thức trong khi Late Binding sử dụng đối tượng để giải quyết việc gọi phương thức.