C# 3.0 その2
もう継承する必要もあまりない感じで。
public abstract class Animal { public abstract void Bark(); public abstract void Run(); } public class Dog : Animal { public override void Bark(){ Console.WriteLine("わんわん"); } public override void Run(){ Console.WriteLine("ハッハッハッハ"); } } //他にも猫とかライオンとかいろいろ作る
public class Animal { public Action Bark{ get; private set; } public Action Run{ get; private set; } public Animal(Action bark, Action run) { Bark = bark; Run = run; } } void Main() { Animal dog = new Animal(() => Console.WriteLine("ワンワン"), () => Console.WriteLine("ハッハッハ"); }
こんな風になったり、
public class Dog : Animal { public Dog() : base( ()=>Console.WriteLine("ワンワン"), ()=>Console.WriteLine("ハッハッハ")){} }
こんな風になったりする。