我有一个接口和一个继承该接口的抽象类。
public interface ISomeInterface
{
int Method()
{
return 1;
}
}
public abstract class SomeAbstractClass : ISomeInterface {}
Run Code Online (Sandbox Code Playgroud)
现在我想实现一个继承的类,SomeAbstractClass它也将实现int Method().
public class SomeClass : SomeAbstractClass
{
public int Method()
{
return 2;
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当调用Method()投射SomeClass对象时ISomeInterface,它将显示 1。
ISomeInterface someClass = new SomeClass();
Console.WriteLine($"{someClass.Method()}"); // displays 1
Run Code Online (Sandbox Code Playgroud)
但是如果我添加接口SomeClass
public class SomeClass : SomeAbstractClass, ISomeInterface
{
public int Method()
{
return 2;
}
}
Run Code Online (Sandbox Code Playgroud)
它将显示 2。
为什么会这样?有没有什么方法可以Method()通过继承SomeAbstractClass而无需编写来声明/实现 …