我有一個類ParentClass()
,一些兒童類ChildClass1()
,ChildClass2()
等和一個接口iChild()
。從ParentClass()
的ChildClass()
繼承並實現iChild()
:接口:需要一個抽象常量?
class ChildClass1
extends ParentClass
implements iChild {}
class ChildClass2
extends ParentClass
implements iChild {}
在iChild()
-Interface,我想需要,一些常量需要填補(其中主要是標識和一些功能的定義)。我還沒有找到任何意義,因爲常量只能在界面中定義,但在實現類中不能重新定義。我找到的唯一解決方法是在iChild()
中定義一些getter函數,然後返回必要的值,但這似乎不是正確的方法。由於我已經從ParentClass()
延伸,我也不能使用抽象類來檢查所有ChildClass中所需常量的定義。
有關如何解決此問題的任何想法?
更新:要回答評論 - 用精簡和更具可讀性我的意思是以下幾點:
class ChildClass1 {
const MY_NAME = "Foo Bar Name 1";
}
-- vs --
class ChildClass1 {
public function GetMyName() {
return "Foo Bar Name 1";
}
}
我找到的第一個例子很多更具可讀性和比第二可以理解的。不幸的是,我目前沒有辦法執行由ChildClasses設置的MY_NAME。
這就是我目前實現它的方式,但我寧願調用常量而不是方法。它更精簡,「感覺更正確」。謝謝你的回答。 – Lars 2012-01-06 23:28:59
它是如何精簡和「感覺更正確」?無論如何,不同的實現定義不同的常量而不將自己綁定到實現類的名稱。 – cspray 2012-01-06 23:32:36