Tính đa hình có thể là tĩnh hoặc động. Trong đa hình tĩnh, phản hồi đối với một hàm được xác định tại thời điểm biên dịch. Trong đa hình động, nó được quyết định tại thời điểm chạy.
Trong đa hình tĩnh, phản hồi đối với một hàm được xác định tại thời điểm biên dịch. Trong đa hình động, nó được quyết định tại thời điểm chạy. Tính đa hình động là những gì chúng tôi gọi là liên kết muộn.
Biên dịch đa hình thời gian hoặc liên kết tĩnh
Cơ chế liên kết một hàm với một đối tượng trong thời gian biên dịch được gọi là liên kết sớm. Nó còn được gọi là ràng buộc tĩnh.
Đa hình thời gian chạy hoặc liên kết động
Tính đa hình thời gian chạy có ghi đè phương thức còn được gọi là liên kết động hoặc liên kết muộn.
Hãy để chúng tôi xem một ví dụ về đa hình thời gian biên dịch thực hiện nạp chồng phương thức -
Ví dụ
using System; namespace PolymorphismApplication { class Printdata { void print(int i) { Console.WriteLine("Printing int: {0}", i ); } void print(double f) { Console.WriteLine("Printing float: {0}" , f); } void print(string s) { Console.WriteLine("Printing string: {0}", s); } static void Main(string[] args) { Printdata p = new Printdata(); // Call print to print integer p.print(5); // Call print to print float p.print(500.263); // Call print to print string p.print("Hello C++"); Console.ReadKey(); } } }
Đầu ra
Printing int: 5 Printing float: 500.263 Printing string: Hello C++