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.
| 归档时间: |
|
| 查看次数: |
90 次 |
| 最近记录: |