访问接口方法
本文关键字:方法 接口 访问 | 更新日期: 2023-09-27 18:12:21
实际上下面的代码是一个简单的界面示例。但是它显示了一个错误'PublicDemo。DemoPublic'没有实现接口成员'PublicDemo.demo1.two()'。' publicdemo . demoppublic .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();
}
}
}
我想知道为什么它不工作
变化
protected void two()
{
Console.WriteLine("this is two method");
}
到
public void two()
{
Console.WriteLine("this is two method");
}
你自己回答了这个问题:
' publicdemo . demoppublic .two()'不能实现接口成员,因为它不是公共的。
答案是接口成员必须是公共的
说到做到。你的两个方法是受保护的。如果从接口实现,它需要是公共的。
protected void two(){
Console.WriteLine("this is two method"); }
改为public
将Protected更改为Public。您已经定义了一个公共接口。一旦你定义了公共接口,接口中的契约在默认情况下也是公共的。
public void two()
{
Console.WriteLine("this is two method");
}