9 language-agnostic interface duplicates
我目前正在通过代码完成工作,"界面"一词不断弹出!我试图了解界面是什么.你能定义这个词吗?实际构成"类接口"的是什么?
Jar*_*Par 10
我认为定义接口的好方法如下
接口是指定一组方法,字段和属性的契约,这些方法,字段和属性将在任何实现对象上可用
从语言到语言的实际实现可能有一些有趣的差异,但原则仍然存在.
我考虑过将实现的接口添加到上面的列表中但是将其关闭,因为它似乎有点过于语言特定.我认为这是可以的,因为最终效果几乎相同.处理更多接口只是为合同添加更多方法,字段和属性.
jal*_*alf 10
一般来说,界面只是"类似于世界其他地方的样子".
例如,Java中的这个类:
class MyClass {
private string data;
private string Foo() {...}
public void Bar(string s){...}
}
Run Code Online (Sandbox Code Playgroud)
可以说在其界面中只有Bar功能.在内部它有一些其他成员,但它们是私人的,所以它们对外界不可见.
更常见的是,接口也是该语言中的特定类型,例如,在下面,MyClass实现了接口IMyClass:
interface IMyClass {
public void Bar(string s);
}
class MyClass implements IMyClass {
private string data;
private string Foo() {...}
public void Bar(string s){...}
}
Run Code Online (Sandbox Code Playgroud)
接口现在用代码表示,因此每当期望IMyClass类型的变量时,就可以使用MyClass类型的对象,因为它实现了正确的接口.