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)
这可能不安全,因为你可以这样做:
interface ITest3 : ITest1 { }
public class Test3 : ITest3 { }
A b = new B();
b.TestProperty = new Test3();
Run Code Online (Sandbox Code Playgroud)
但是Test3没有ITest2按要求实施B.