为什么派生类不能使用扩展该接口的类型覆盖基类的接口类型abstract属性?

Per*_*ack 1 c# inheritance interface

在下面的代码中,编译器抱怨B没有实现TestProperty抽象类A.ITest2源于ITest1它所以它实现了一切ITest1.为什么这不可能?

public interface ITest1 { }
public interface ITest2 : ITest1 { }

public abstract class A
{
    public abstract ITest1 TestProperty { get; set; }
}

public class B:A
{
    public override ITest2 TestProperty { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

Lee*_*Lee 8

这可能不安全,因为你可以这样做:

interface ITest3 : ITest1 { }
public class Test3 : ITest3 { }

A b = new B();
b.TestProperty = new Test3();
Run Code Online (Sandbox Code Playgroud)

但是Test3没有ITest2按要求实施B.