using System;
public interface IAnimal
{
bool IsWarmBlooded { get; }
}
public abstract class Mammal : IAnimal
{
public bool IsWarmBlooded { get { return true; } }
}
public class Cat : Mammal
{
public void Purr()
{
Console.WriteLine("Purr!");
}
}
public class Dog : Mammal
{
public void Bark()
{
Console.WriteLine("Woof!");
}
}
public static class Program
{
public static void Main()
{
var dog = new Dog();
var cat = new Cat();
dog.Bark();
cat.Purr();
Console.WriteLine(dog.IsWarmBlooded);
Console.WriteLine(cat.IsWarmBlooded);
}
}
dXNpbmcgU3lzdGVtOwoKcHVibGljIGludGVyZmFjZSBJQW5pbWFsCnsKCWJvb2wgSXNXYXJtQmxvb2RlZCB7IGdldDsgfQp9CgpwdWJsaWMgYWJzdHJhY3QgY2xhc3MgTWFtbWFsIDogSUFuaW1hbAp7CglwdWJsaWMgYm9vbCBJc1dhcm1CbG9vZGVkIHsgZ2V0IHsgcmV0dXJuIHRydWU7IH0gfQkKfQoKcHVibGljIGNsYXNzIENhdCA6IE1hbW1hbAp7CglwdWJsaWMgdm9pZCBQdXJyKCkKCXsKCQlDb25zb2xlLldyaXRlTGluZSgiUHVyciEiKTsKCX0KfQoKcHVibGljIGNsYXNzIERvZyA6IE1hbW1hbAp7CglwdWJsaWMgdm9pZCBCYXJrKCkKCXsKCQlDb25zb2xlLldyaXRlTGluZSgiV29vZiEiKTsKCX0KfQoKcHVibGljIHN0YXRpYyBjbGFzcyBQcm9ncmFtCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkKCXsKCQl2YXIgZG9nID0gbmV3IERvZygpOwoJCXZhciBjYXQgPSBuZXcgQ2F0KCk7CgkJCgkJZG9nLkJhcmsoKTsKCQljYXQuUHVycigpOwoJCQoJCUNvbnNvbGUuV3JpdGVMaW5lKGRvZy5Jc1dhcm1CbG9vZGVkKTsKCQlDb25zb2xlLldyaXRlTGluZShjYXQuSXNXYXJtQmxvb2RlZCk7Cgl9Cn0K