假设我们有这样的代码:
interface I
{
int P { get; }
}
class A : I
{
public virtual int P { get { return 0; } }
}
class B : A
{
public override int P { get { return 1; } }
}
class C : B, I
{
public int P { get { return 2; } }
}
A c = new C();
I ic = new C();
Run Code Online (Sandbox Code Playgroud)
现在的问题是什么是cP和ic.P?其实我知道它会是1和2,但你能解释一下为什么吗?