接口(面向对象的编程)
在面向对象的编程中,接口或协议类型是作为类抽象的数据类型。它描述了一组方法签名,其实现可以由多个类别提供,而这些类别不一定相互关联。据说提供协议中列出的方法的类采用协议或实现界面。
如果对象完全封装,则该协议是其他对象可以访问它们的唯一方法。例如,在Java ,Comparable
接口指定方法compareTo()
哪些实施类必须实施。这意味着,例如,一种分类方法可以对实现可比接口的任何类型对象进行分类,而无需对类的内部性质了解(除了可以通过这些对象的两个对象进行比较除外compareTo()
).
一些编程语言为协议提供了明确的语言支持( ADA , C# , D , DART , DELPHI , GO , JAVA , LOGTALK , OBSOCE PASCAL , OBSICOCT-C ,OCAML, OCAML ,OCAML, PHP ,球拍, Seed7 ,Swift, Swift , Python 3.8)。在支持多种继承的语言中,例如C ++ ,接口将作为抽像类实现。
在没有明确支持的语言中,协议通常仍然作为约定。这就是所谓的鸭打字。例如,在Python中,任何班级都可以实现__iter__
方法并用作集合。
类型类中的类型类,例如Haskell或ML和OCAML中的模块签名,用于协议使用的许多内容。