1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
interface IFoo { public abstract void foo (); } class Bar : IFoo { public void foo () { reached = true; } } class Foo : Bar { public void bar () { base.foo (); } } bool reached = false; void main () { var foo = new Foo (); assert (foo is IFoo); foo.bar (); assert (reached); }