C#中抽象类继承抽象类时,重写的方法是不是要用abstract override
麻烦回答一下下面代码处有问号的地方
/*抽象类继承抽象类*/
using System;//
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace one
{
//主方法,继承New中的IF接口
public class MainClass
{
//主函数入口
public static void Main(string[] args)
{
C b1 = new C();
b1.Dd();
Console.ReadKey();
}
}
public abstract class A
{
public abstract void Dd();
}
public abstract class B : A
{
//此处是否已覆盖基类方法?
public abstract override void Dd();
}
public class C : B
{
//此外是重写A中的方法还是重写的B中方法?
public override void Dd()
{
Console.WriteLine("rm");
}
}
}
1、//此处是否已覆盖基类方法?
覆盖了
2、//此外是重写A中的方法还是重写的B中方法?
重写的是B中方法,因为B中已经覆盖了A
这无所谓b还是a
因为两者都是抽象的
在C#里,有一种区分方法,但是必须是私有方法,叫做显式接口实现。
即,对于接口,如果有重名但是不同含义的个2方法,可以指定实现的是哪个的。