我有下面一个小例子。我希望B类型继承自A,同时能实现自身的F函数。但是编译有warning说是F会隐藏接口函数
public interface IMy
{
void F();
}
public class A : IMy
{
public void F()
{
Console.WriteLine("A");
}
}
public class B : A
{
public void F()
{
Console.WriteLine("B");
}
}
class Program
{
static void Main(string[] args)
{
IMy my = new B();
my.F();
}
}
我不想用所谓的explicit interface implementation,就像在main函数里面使用常见的多态。这个程序打印的是A而不是我想要的是B。怎么才能让B实现接口定义的F函数呢?
谢谢
解决方案:10分
public class A : IMy
{
public virtual void F()
{
Console.WriteLine("A");
}
}
public class B : A
{
public override void F()
{
Console.WriteLine("B");
}
}
解决方案:10分
接口在父类已经实现了,所以子类不需要再实现
解决方案:10分
接口哪有继承的说法
要么是你自己想象的,或者是理解有问题。
要么是你自己想象的,或者是理解有问题。
解决方案:20分
virual override new这三个关键字在方法名前面分别代表什么含义好好查查