物件導向 part6 繼承

2022-09-08 14:48:20 字數 1116 閱讀 1317

js實現的是實現繼承/也就是繼承實際的方法

//主要依賴:原型鏈

//基本思路: 就是乙個引用型別繼承另乙個引用型別的屬性和方法

詳細:建構函式,例項,原型之間的關係。每個建構函式都有乙個原型物件,原型物件都包含乙個指標指向建構函式

每個例項都包含乙個內部指標指向原型。假如我們讓乙個原型物件等於寧乙個型別的例項。此時的原型物件將包含乙個

內部指標指向另乙個原型。以此類推。。。

所有引用型別都預設繼承了object。而這個繼承也是通過原型鏈實現的。

所有函式的預設原型都是object的例項

這也就是為什麼所有自定義型別都會繼承tostring()等預設方法。

繼承的時候

子類重寫原型中的方法會遮蔽原型的方法。但是不改變原型中的這個方法

子類呼叫是新方法,原型呼叫還是原來的方法

原型繼承的時候,不要使用字面量方法,字面量方法會重寫原型鏈

1.引用型別的值問題

function supertype() =

function subtype() ={}

//繼承了supertype

//同時生成乙個超類的例項

//該例項是呼叫了超類建構函式

//也就是同時呼叫了超類建構函式中的this

= ["red", "blue"]

subtype.prototype = new

supertype()

var instance1 = new

subtype()

//此時呼叫的是原型中color

//修改的同時會反應在其他例項

instance1.colors.push("black")

var instance2 = new

subtype()

instance2.color

//"red, blue,black"

2.不能像超型別的建構函式中傳遞引數。沒有辦法在不影響例項的情況下。給超型別的建構函式傳遞引數

當沒有必要建立建構函式的時候,只想讓乙個物件與另乙個物件保持類似的情況。

不過包含引用值屬性始終都會共享相應的值。就像使用原型模式

程式設計練習 part6

題目 小東所在公司要發年終獎,而小東恰好獲得了最高福利,他要在公司年會上參與乙個 遊戲,遊戲在乙個6 6的棋盤上進行,上面放著36個價值不等的禮物,每個小的棋盤上面放置著乙個禮物,他需要從左上角開始遊戲,每次只能向下或者向右移動一步,到達右下角停止,一路上的格仔裡的禮物小東都能拿到,請設計乙個演算法...

Part6 使用STL程式設計總結

count,find用於乙個無序的容器集合內。count返回是否存在這個值,如果有,那麼有多少個?find則用於考慮 是否存在這個值,如果有,那麼第乙個在哪兒?找到後立即會返回。所有,兩個的方法的用處不一樣,find的效率會高於count,因為它是找到後就立即返回。從無序區間遷移到有序區間導致了另乙...

C語言入門part6 函式

關鍵字 庫函式,自定義函式,函式的巢狀呼叫及鏈式訪問,遞迴,strlen 和sizeof的區別,p 和 p 的區別 庫函式 strcpy字串複製strcat字串拼接 char string 80 char ch hello world strcpy string,ch 或者這兩行改為 strcpy ...