我对 C# 有点陌生,我已经取得了一些让我感到困惑的东西,为什么允许这样做。
public interface IBase
{
}
public interface ISub : IBase
{
}
public class Thing
{
protected IBase provider;
public Thing(IBase provider)
{
this.provider = provider;
}
}
public class AnotherThing : Thing
{
protected ISub provider;
public AnotherThing(ISub provider) : base(provider)
{
this.provider = provider;
}
}
我希望我只是很密集,但我不明白如何允许我覆盖provider
而不会给编译器造成一些混乱。
该代码确实有效。