让我解释一下:
我知道,在Java 中,你可以做这样的事情:
int myMethod(Burnable obj){
/*do stuff that's only applicable if the argument implements the Burnable
*interface
*/
}
我最喜欢用 PHP 进行编程,而且我不确定我是否也可以在PHP中执行。
此外,我想知道其他哪些合理主流语言,我认为这是在代码中构建模块性的一种方式。
谢谢
答案 0 :(得分:4)
所有静态类型语言(C,C ++,Java,Objective-C,Ada和许多其他语言)都允许指定函数参数的类型。它们的一个子集允许重载(具有多个具有相同名称但具有不同类型参数的不同功能)。从PHP5开始,可以使用type hinting指定参数类型,以验证函数调用是否传递了期望类型的参数;但是,PHP不支持重载(尽管您可以使函数接受多种不同类型,然后检查类型并按类型分派到不同的实现)。
答案 1 :(得分:1)
所有标准CLR语言(C#,VB.NET,F#)都支持使用接口。 Haskell具有类似函数的类型类。
答案 2 :(得分:1)
每种面向对象的语言都允许这样做。他们拼写“界面”的方式不同。在C ++中,它只是一种特殊的类,其中每个成员都是“纯虚拟”(现在称为“抽象”)。在C#中,它就像java一样。在动态类型语言中,例如PHP,Python和Ruby,它只是隐式的(即参数必须符合的接口没有明确拼写,但抽象中仍然有一个“接口”。) / p>
执行此操作的能力与Liskov替换原则有关,它是面向对象编程的基本原则之一。很高兴你喜欢它: - )