2012-05-26 72 views
2

我學習摘要接口和我之間的差異讀一些句子 說PHP,OOP,不同的配方

一個子類只能擴展一個抽象(或任何其他)類, 而接口可以擴展或一個類可以實現多個其他接口。

我明白了,他說:「一個子類只能擴展一個抽象(或任何其他)類,」他的意思是:

class first 
{ 
    public function Search() 
    { 
     return 'Hellow'; 
    } 
} 

abstract class first2 extends first 
{ 

} 

class second extends first2 
{ 

} 

$ob = new second(); 
echo $ob->Search(); 

但是,我沒有’噸瞭解的其餘部分他的句子,他說,「而接口可以擴展或一個類可以實現多個其他接口。 」

有人能解釋他的最後一句話,並添加一個代碼示例嗎? 謝謝大家,祝你有美好的一天。

+0

http://www.php.net/manual/de/language.oop5.interfaces.php – gearsdigital

+0

總是讀感謝您gearsdigital你的鏈接。 – Blanktext

回答

5

您可以實現多個接口

interface C { 
    public function method1(); 
} 

interface D { 
    public function method2(); 
} 

class A implements C,D { 

    //implement from interface C 
    public function method1() { 

    } 
    //implement from interface D 
    public function method2() { 

    } 
} 

在這裏,你將需要實現從接口C和D的方法你也可以在接口內的擴展接口,如正常上課。

interface D extends C{} 

這很有用,當你需要一些常用的方法。所以你可以在接口中寫入「schema」來實現你希望從基類中實現的方法。

儘管抽象是單個擴展類,但您無法爲其創建實例,只能擴展。當你想要一些具有通用功能的基類或抽象方法時應該稍後實施它,這很有用。

更可以在php.net - interfaces

+0

謝謝Alickus,我現在明白祝你有美好的一天。 – Blanktext

+0

並感謝鏈接。 – Blanktext

+0

基類幾乎總是糟糕的設計。繼承的想法不是收集某些Blob/God類中的常用功能。繼承的想法是有一些定義明確的超類,然後在子類中有特殊情況/變化。 – Gordon