2013-01-09 184 views
5

這是一個更容易解決問題的問題,也是一個最佳實踐問題。PHP擴展類是否繼承接口?

<?php 
class FOO implements Iterator 
{ 
    .... 
} 

class BAR extends FOO 
{ 
    .... 
} 

class OTHER extends FOO implements Iterator 
{ 
    .... 
} 
?> 

在上面的例子中,BAR是否也有Iterator接口?如果是這樣,是不是每次都定義接口(比如OTHER)還是將BAR定義視爲最佳實踐?

我簡化了這個例子,因爲我們使用的是FOO的抽象類,我們希望確保具有Iterator支持,然後可以在BAR類中重寫元素之間的移動。我們希望強制爲子類定義一些函數,但是要適當地繼承其他方法,並且仍然使用基本迭代器,而不必在子類上定義接口。

回答

5

子類將繼承Iterator接口的超類實現,它可以自由覆蓋。你不需要明確地說implements Iterator,但是如果你這樣做,那麼你必須在子類中實現所有接口的方法。

+0

謝謝。這是我的預期,但沒有進行詳細的測試,我不確定並想驗證我的假設。 –