我有下面一个小例子。我希望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这三个关键字在方法名前面分别代表什么含义好好查查