我已经看过几次提到这个,我不清楚这是什么意思.你何时以及为何会这样做?
我知道接口有什么作用,但事实上我不清楚这一点让我觉得我错过了正确使用它们.
如果你这样做是这样的:
IInterface classRef = new ObjectWhatever()
Run Code Online (Sandbox Code Playgroud)
你可以使用任何实现的类IInterface吗?你什么时候需要这样做?我唯一能想到的是,如果你有一个方法,你不确定除了实现之外将传递什么对象IInterface.我想不出你需要多久做一次.
另外,你怎么能写一个接受实现接口的对象的方法?那可能吗?
为什么可以在不指定返回类型的情况下创建接口?为什么不能使这个接口无法使用?
这使它更清楚:
Interface run
{
public function getInteger();
}
class MyString implements run
{
public function myNumber()
{
}
public function getInteger()
{
return "Not a number";
}
}
Run Code Online (Sandbox Code Playgroud)
在Java中,每个接口都有一个类似的返回类型Integer,String或Void
我知道PHP不幸是一种松散类型的语言,但是没有解决这个问题的方法吗?
是否可以定义具有类似返回类型的接口Integer?
我一直在玩PHP和Python.
我一直在阅读OO编程中的接口,并且看不到使用它的优势.
多个对象可以实现相同的接口,但多重继承也不能提供这个功能?
为什么我需要创建一个"没有实现"的接口 - 主要是"契约" - 如果我可以检查一个方法是否存在于Python中的一个对象中,是否继承了多个类?
接口是用其他语言创建的,因为它们不提供多重继承?或者我错过了一些更重要的东西?
其中一个主要的设计原则是接口的程序而不是实现.这在PHP或任何其他弱类型语言中甚至是可能的.
编辑:
我也许没有像我应该的那样清楚地写出这个问题.我不是说php不能使用接口 - 它显然可以.我的意思是设计原则"接口而不是实现的程序"在弱类型语言中变得多余.