定义接口如下:
interface IInterface
{
bool method();
}
定义虚类如下:
abstract class ClassTest: IInterface
{
abstract bool IInterface.method() //这里是语法错误的,不允许使用abstract关键字
{
throw new NotImplementedException();
}
}
请教一下,是不是这个继承接口的虚类ClassTest,必须要实现接口定义的方法?
因为我这个继承这个接口的虚类有多个,但是其偏向的业务不同 因此无法将方法抽象到接口中,我希望通过抽象类将该类自己的一些公共业务定义在抽象类里,然后再由具体实现类来实现接口定义的方法以及抽象类中定义的虚方法。
------解决思路----------------------
抽象类实现接口,把接口中的方法映射到抽象类中作为抽象方法而不必实现,在抽象类中的继承类中实现接口中的方法即可。
------解决思路----------------------
c# 的语法是这样的
abstract class ClassTest : IInterface
{
abstract public bool method();
}
你的那种写法,编译器应该明确告诉你了,不是什么“不允许abstract关键字”,而是“声明为abstract的方法不应该有方法体”。
------解决思路----------------------
public abstract bool IInterface.method();
不是必须要执行,这样声明为abstract 就行了