我有一個基本的抽象類(BC)。PHP靜態/抽象:如何使用繼承方法訪問私有變量?
我有一個擴展BC的抽象類X. X有一些私有變量。
我搜索一種可能性,使用BC中定義的方法(因此可以繼承到X),該方法可以列出X的所有變量,包括私有變量。
據我所知,除非我用BC和X類定義中的這個特徵將BC方法轉換爲特徵,否則這是不可能的?
有沒有其他解決方案可以讓我直接在BC中定義方法?
我有一個基本的抽象類(BC)。PHP靜態/抽象:如何使用繼承方法訪問私有變量?
我有一個擴展BC的抽象類X. X有一些私有變量。
我搜索一種可能性,使用BC中定義的方法(因此可以繼承到X),該方法可以列出X的所有變量,包括私有變量。
據我所知,除非我用BC和X類定義中的這個特徵將BC方法轉換爲特徵,否則這是不可能的?
有沒有其他解決方案可以讓我直接在BC中定義方法?
如果BC是X的一個實例,您可以嘗試將您的方法調用傳遞給X. X中的方法將再次傳遞所需的信息。
if ($this instanceof X) {
... // call X-specific method
}
我的錯誤理解 - 抱歉,仍然是面向對象的初學者(和苦難)。
我沒有意識到私有方法對於一個類是非常私有的,並且這甚至不會繼承到繼承的類。
但它是有道理的。我的結論是:只使用私有極少數情況下,標準使用將比私有更受保護(對於任何應該繼承但不可從外部訪問的內容)。
私人會員被稱爲私人會員,因爲他們是私人會員。 – zerkms
我不知道你是如何從「私人」成員到「特質」的。 – PeeHaa
在這種情況下'受保護的'是好的 –