Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Đa hình (Polymorphism) trong C# là gì?

Đa hình có thể là tĩnh hoặc động. Trong đa hình tĩnh, phản hồi hàm được xác định tại compile time. Trong đa hình động, quyết định tại run-time.

Đa hình tĩnh: phản hồi hàm xác định tại compile time. Đa hình động: quyết định tại run-time. Đa hình động còn gọi là late binding.

Đa hình thời gian biên dịch hoặc Ràng buộc tĩnh (Static Binding)

Cơ chế liên kết hàm với đối tượng tại compile time gọi là early binding, hay static binding.

Đa hình thời gian chạy hoặc Ràng buộc động (Dynamic Binding)

Đa hình runtime có method overriding còn gọi là dynamic binding hoặc late binding.

Ví dụ đa hình compile time triển khai method overloading:

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(); 
        } 
    } 
}

Kết quả

Printing int: 5
Printing float: 500.263
Printing string: Hello C++