实际上下面的代码是接口的简单示例。但它显示错误' PublicDemo.DemoPublic'没有实现接口成员' PublicDemo.demo1.two()'。 ' PublicDemo.DemoPublic.two()'无法实现接口成员,因为它不是公共的。
namespace PublicDemo
{
public interface demo
{
void Demo();
}
public interface demo1:demo
{
void one();
void two();
}
class DemoPublic :demo1
{
protected internal string variable;
public void Demo()
{
Console.WriteLine("{0}", variable);
}
public void one()
{
Console.WriteLine("this is one method");
}
protected void two()
{
Console.WriteLine("this is two method");
}
}
class Excute : DemoPublic
{
static void Main(string[] args)
{
Excute Dp = new Excute();
Dp.variable = Console.ReadLine();
Dp.Demo();
Dp.one();
Dp.two();
Console.ReadKey();
}
}
}
我需要它为什么不起作用
答案 0 :(得分:1)
更改
protected void two()
{
Console.WriteLine("this is two method");
}
到
public void two()
{
Console.WriteLine("this is two method");
}
答案 1 :(得分:1)
你自己回答了这个问题:
'PublicDemo.DemoPublic.two()'无法实现接口成员,因为它不是公共的。
答案是界面成员必须公开。
答案 2 :(得分:0)
将保护更改为公共。您已定义公共接口。一旦定义了公共接口,接口中的合同也将默认为公共。
public void two()
{
Console.WriteLine("this is two method");
}
答案 3 :(得分:0)
这意味着什么。你的两个方法都受到保护。如果从界面实现,它需要是公开的。
protected void two(){
Console.WriteLine("this is two method"); }
将其更改为公开