亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

php中類的繼承在內存中的結構與不繼承的結構問題

第一個問題:

1.假設有一個父類只有一個 name 屬性,使用 public 關鍵字修飾;又寫了個一個空的子類繼承自這個父類(不要說繼承了就不是空的了)。實例化這個子類。

class?Father?{
????public?$name?=?'name';
}
class?Child1?extends?Father?{
}

2.有一個類只有一個 name 屬性使用 public 修飾。實例化一個這個類。

class?Child2?{
????public?$name?=?'name';
}

上面兩種情況,不從外在形式上區分不同,在內存中的結構是相同的嗎(僅從繼承來的數據來看比如 $name)?如果不同,能否用通俗的語言解釋下?

我試過繼承靜態屬性時,以子類身份修改靜態數據后,父子的這部分數據都會發生改變,那么關于靜態屬性方法是存儲一份還是兩份(有關聯?)

第二個問題:

如果上面的結果是相同,那么是不是可以理解為繼承就是將父類的屬性方法拿來(public 的和 protected 的),添加到子類中,子類中繼承來的屬性方法相當于父類中的屬性方法復制了一份,其實沒有一種必然的聯系,就像 =&= 這兩種賦值方式的感覺,它是屬于 = 這種方式(不考慮復寫和靜態這些情況,我有點亂說不清,就是只考慮子類沒有直接寫出的而在父類中寫出的那些屬性方法,如果你清楚這個可以幫我解答下)。


雖然這個問題在實際開發過程中可能沒什么用,但就是想知道,希望誰能幫我解答一下。

正在回答

2 回答

如果不是實例化應該是一樣的

0 回復 有任何疑惑可以回復我~

感覺應該不一樣

0 回復 有任何疑惑可以回復我~
#1

慕無忌0429193

http://zhidao.baidu.com/link?url=0HU9fPOubHlxOVQpbddf6GnAziWNwluKULBl7tzqtMUyl7q-k4OsZjIGnMM1cDjqzHz__moRFvhWWMrWjCgZm_
2016-03-22 回復 有任何疑惑可以回復我~
#2

dayu_ 提問者 回復 慕無忌0429193

有點繞,我使用()來分割區域。 我指的不是(繼承加實例化后)的對象數據是不是使用同一個引用,子類和父類實例化兩個對象當然不會是一個。我指的是繼承后,(子類繼承的結構)是否和(不繼承而新創建一樣的數據類型)在內存中存儲的方式是一樣的,第一個問題我就是傾向于相同,不是實例化相同,是模型相同。
2016-03-22 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
PHP面向對象編程
  • 參與學習       70193    人
  • 解答問題       369    個

從容應對面試官的知識寶典,帶你握面向對象的最重要的核心能力

進入課程

php中類的繼承在內存中的結構與不繼承的結構問題

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號