using System;
using System.Collections.Generic;
namespace Polymorphism
{
class Program
{
public class Car
{
public string Drive()
{
return "Wrrrr!";
}
}
public class Dog
{
public string Talk()
{
return "Woof";
}
}
static void Main()
{
var car = new Car();
var dog = new Dog();
List<object> list = new List<object>();
list.Add(car);
list.Add(dog);
foreach (object o in list)
{
if (o is Car)
Console.WriteLine((o as Car).Drive());
else
Console.WriteLine((o as Dog).Talk());
}
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKIApuYW1lc3BhY2UgUG9seW1vcnBoaXNtCnsKICAgIGNsYXNzIFByb2dyYW0KICAgIHsKIAogICAgICAgIHB1YmxpYyBjbGFzcyBDYXIKICAgICAgICB7CiAgICAgICAgICAgIHB1YmxpYyBzdHJpbmcgRHJpdmUoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICByZXR1cm4gIldycnJyISI7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAKICAgICAgICBwdWJsaWMgY2xhc3MgRG9nIAogICAgICAgIHsKICAgICAgICAgICAgcHVibGljIHN0cmluZyBUYWxrKCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgcmV0dXJuICJXb29mIjsKICAgICAgICAgICAgfQogICAgICAgIH0KIAogICAgICAgIHN0YXRpYyB2b2lkIE1haW4oKQogICAgICAgIHsKICAgICAgICAgICAgdmFyIGNhciA9IG5ldyBDYXIoKTsKICAgICAgICAgICAgdmFyIGRvZyA9IG5ldyBEb2coKTsKIAoJTGlzdDxvYmplY3Q+IGxpc3QgPSBuZXcgTGlzdDxvYmplY3Q+KCk7CglsaXN0LkFkZChjYXIpOwoJbGlzdC5BZGQoZG9nKTsKCglmb3JlYWNoIChvYmplY3QgbyBpbiBsaXN0KQoJewoJCWlmIChvIGlzIENhcikgCgkJCUNvbnNvbGUuV3JpdGVMaW5lKChvIGFzIENhcikuRHJpdmUoKSk7CgkJZWxzZQoJCQlDb25zb2xlLldyaXRlTGluZSgobyBhcyBEb2cpLlRhbGsoKSk7Cgl9CgogICAgICAgIH0KICAgIH0KfQ==