有2个接口定义为:
interface calc1
{
int add(int a, int b);
}
interface calc2
{
int add(int x, int y);
}
一个类将这两个接口实现为:
class Calculation : calc1, calc2
{
public int result1;
public virtual int add(int a, int b)
{
return result1 = a + b;
}
}
一切正常。但是当我将类定义更改为:
class Calculation : calc1, calc2
{
public int result1;
public int result2;
public virtual int calc1.add(int a, int b)
{
return result1 = a + b;
}
public int calc2.add(int x, int y)
{
return result2 = x - y;
}
}
我看到了错误:
The modifier 'virtual' is not valid for this item
和
The modifier 'public' is not valid for this item
后一类代码有什么问题?
答案 0 :(得分:2)
显式接口实现不能具有访问修饰符,因为它们仅在将接口用作类型时可见。制作public
毫无意义。
此外,您无法从显式接口实现派生,因此virtual
也无用。编译器知道并打破它。