接口(面向对象的编程)

面向对象的编程中,接口协议类型是作为抽象数据类型。它描述了一组方法签名,其实现可以由多个类别提供,而这些类别不一定相互关联。据说提供协议中列出的方法的类采用协议或实现界面。

如果对象完全封装,则该协议是其他对象可以访问它们的唯一方法。例如,在JavaComparable接口指定方法compareTo()哪些实施类必须实施。这意味着,例如,一种分类方法可以对实现可比接口的任何类型对象进行分类,而无需对类的内部性质了解(除了可以通过这些对象的两个对象进行比较除外compareTo()).

一些编程语言为协议提供了明确的语言支持( ADAC#DDARTDELPHIGOJAVALOGTALKOBSOCE PASCALOBSICOCT-C ,OCAML, OCAML ,OCAML, PHP球拍Seed7 ,Swift, SwiftPython 3.8)。在支持多种继承的语言中,例如C ++ ,接口将作为抽像类实现。

在没有明确支持的语言中,协议通常仍然作为约定。这就是所谓的鸭打字。例如,在Python中,任何班级都可以实现__iter__方法并用作集合

类型类中的类型类,例如HaskellMLOCAML中的模块签名,用于协议使用的许多内容。

也可以看看