class Program
{
static void Main(string[] args)
{
List<A> myList = new List<A> {new A(), new B(), new C()};
foreach (var a in myList)
{
Render(a);
}
Console.ReadKey();
}
private static void Render(A o)
{
Console.Write("A");
}
private static void Render(B b)
{
Console.Write("B");
}
private static void Render(C c)
{
Console.Write("C");
}
}
class A
{
}
class B : A
{
}
class C : A
{
}
Đầu ra là: AAAPhương pháp quá tải và đa hình
Có thể bằng cách nào đó sử dụng phương pháp quá tải, do đó sản lượng sẽ là: ABC?
Mặc dù độ phân giải quá tải được thực hiện tại thời gian biên dịch tại sao "A a" được chọn trên "B b" và "C c". – Sandeep
@Sandeep: Vì kiểu biên dịch của biến 'a' trong' Main' chỉ là A, bởi vì danh sách là một 'Danh sách '. Vì vậy, 'Render (a)' có thể * chỉ * chọn 'Render (A a)'. –
Điều đó có ý nghĩa. Cảm ơn vì đã trả lời. – Sandeep