// Compiler options: -warnaserror abstract class Base { public abstract int Prop { get; set; } public abstract int this[int i] { get; } public abstract void TestVoid (); public abstract void TestInt (int i); } abstract class DeriveVTable : Base { public override int Prop { get { return 1; } } public override int this[int i] { get { return 1; } } public override void TestVoid () { } public override void TestInt (int i) { } } abstract class NewVTable : DeriveVTable { public new abstract int Prop { get; } public new int this[int i] { get { return 2; } } public new void TestVoid () { } public new void TestInt (int i) { } public void Overload () { } public void Overload (int i) { } public static void Main () { } }