Tính đa hình trong C#
Từ polymorphism (tính đa hình) nghĩa là có nhi u hình thái. Trongề l p trìnhậ
hưng ớđ i tố ư ng, tính đa hình th ng đ c di n đ t nh là "m t Interface,ợ ườ ượ ễ ạ ư ộ
nhi u hàm".ề
Tính đa hình trong C# có th làể staticho cặ dynamic. Trong đó, ki uể đa
hình static có th đ c g i là đa hình tĩnh, ph n h i t i m t hàm đ c xácể ượ ọ ả ồ ớ ộ ượ
đ nh t i th i đi m biên d ch và ki uị ạ ờ ể ị ể đa hình dynamic có th đ c g i là ể ượ ọ
đa hình đ ng, đ c xác đ nh trong th i gian ch y.ộ ượ ị ờ ạ
Đa hình static trong C#
K thu t 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à Early Binding. Nó cũng đ c g i là Static Binding. C# cung ượ ọ ượ ọ
c p hai k thu t đ tri n khai đa hình tĩnh, là:ấ ỹ ậ ể ể
N p ch ng hàm (Function overloading)ạ ồ
N p ch ng toán t (Operator overloading)ạ ồ ử
Chúng ta có riêng m t bài bàn lu n vộ ậ ề n p ch ng toán t trong C#.ạ ồ ử
N p ch ng hàm trong C#ạ ồ
B n có th có nhi u đ nh nghĩa cho cùng tên hàm trong cùng m t ph m vi. ạ ể ề ị ộ ạ
Các đ nh nghĩa này c a hàm ph i khác nhau: nh ki u và/ho c s l ng ị ủ ả ư ể ặ ố ượ
tham s trong danh sách tham s . Trong C#, b n không th n p ch ng các ố ố ạ ể ạ ồ
khai báo hàm mà ch khác nhau ki u tr v .ỉ ở ể ả ề
Ví d sau minh h a cách s d ng hàmụ ọ ử ụ print() đ in các ki u d li u khác ể ể ữ ệ
nhau trong C#:
using System; namespace VdNapChong { class InDuLieu { void print(int i) {
Console.WriteLine("In s nguyên: {0}"ố, i ); } void print(double f) {
Console.WriteLine("In s th p phân: {0}"ố ậ , f); } void print(string s) {
Console.WriteLine("In chu i: {0}"ỗ, s); } static void Main(string[] args) {
InDuLieu p = new InDuLieu(); // G i hàm in s nguyênọ ố p.print(9); // G i ọ
hàm in s th p phânố ậ p.print(501.263); // G i hàm in chu iọ ỗ p.print("H c C# ọ
th t vui!"ậ); Console.ReadKey(); } } }
N u đã đ c các bài C# tr c b n s bi t r ng, n u không s d ng ế ọ ướ ạ ẽ ế ằ ế ử ụ
l nhệ Console.ReadKey(); thì ch ng trình s ch y và k t thúc luôn (quá ươ ẽ ạ ế
nhanh đ n n i b n không k p nhìn k t qu ). L nh này cho phép chúng ta ế ỗ ạ ị ế ả ệ
nhìn k t qu m t cách rõ ràng h n.ế ả ộ ơ