如何从接口实现公共方法
本文关键字:方法 实现 接口 | 更新日期: 2023-09-27 17:50:19
我有以下界面
interface ITest
{
void TestVoid();
}
class A : ITest
{
public void ITest.TestVoid() //will not work
{
Conole.WriteLine("Done");
}
public void TestVoid() //without name of interface, it works
{
Conole.WriteLine("Done");
}
}
第二个问题:接口只包含成员的签名而不包含实现,这对吗?
第一个方法是显式实现。这允许您实现接口,而无需在类外部显示此方法。此外,您不能在显式实现中使用可见性修饰符。
第二种方法是普通的(隐式)实现,其中实现接口并创建公共方法。
更多:隐式和显式接口实现,c#:接口-隐式和显式实现
回答你的第二个问题:这就是接口。它只告诉你,对象上有什么方法,属性或事件可用。
我回答你的第二个问题:是的,是正确的。
接口声明一种契约,如果你实现该接口,你必须使用。
一个接口简单地(并且仅仅)声明了当你实现这些接口时你必须在你的类中写些什么。
第一个叫做显式实现,它的工作原理是这样的:
interface ITest
{
void TestVoid();
}
class A : ITest
{
public static void Main()
{
A a1 = new A();
ITest a2 = new A();
a1.TestVoid(); // won't work
a2.TestVoid(); // will work
}
public void ITest.TestVoid()
{
Conole.WriteLine("Done");
}
}
接口不能包含实现,只能包含签名。
第二个可以使用
您需要像这样实现接口。
class A : ITest {
}.
你可以用ittest显式地实现ittests方法。前缀
或隐式地作为公共方法
如果它们是显式的,则访问它们的方式如下。
ITest a = new A();
。
A = new A();
接口永远没有实现,
类方法总是这样做,除非它被标记为抽象-那么派生类具有实现n
第一种称为显式实现,不应该有任何访问说明符,显式接口还可以用于隐藏类开发人员认为私有的接口的详细信息。第二个是隐式实现。它必须以public作为访问说明符。
这个链接对理解它很有帮助。http://blogs.msdn.com/b/mhop/archive/2006/12/12/implicit-and-explicit-interface-implementations.aspx