如何建立乙個基類;
如何利用基類建立乙個例項;
如何用基類派生乙個子類;
如何用子類建立乙個例項;
print("-------------------")
--基於原型的繼承
--理解為基類
robort =
function robort:getid()
return self.id
endfunction robort:setid( id )
self.id = id
endfunction robort:getname()
return self.name
endfunction robort:setname( name )
self.name = name
end--用於派生子類的成員函式
function robort:new( extension )
local subrobort = setmetatable( extension or {}, self )
self.__index = self
return subrobort
end--基類方法建立例項
robort = robort:new()
print("robort:id-", robort:getid())
print("robort:name-", robort:getname())
print("-------------------")
--footrobort繼承自robort類,並擁有自己的屬性和方法
footrobort = robort:new()
function footrobort:getposition()
return self.position
endfunction footrobort:setposition( position )
self.position = position
end--使用子類建立子類的例項
footrobort = footrobort:new()
print("footrobort:id-", footrobort:getid())
print("footrobort:name-", footrobort:getname())
print("footrobort:position-", footrobort:getposition())
print("---------測試:修改子類例項的成員資料,證明父類的例項的成員資料是不會受到影響的----------")
footrobort:setname("han meimei")
print("footrobort:name-"..footrobort:getname())
print("robort:name-"..robort:getname())
print("-------------------")
【結果】
-------------------
robort:id- 1
robort:name-
li lei
-------------------
footrobort:id- 1
footrobort:name-
li lei
footrobort:position-
here
---------測試:修改子類例項的成員資料,證明父類的例項的成員資料是不會受到影響的----------
footrobort:name-han meimei
robort:name-li lei
-------------------
javascript基於原型的繼承機制
請區分兩個物件 function物件及原型物件 以object為例 每個函式本身就是乙個建構函式 每個函式又對應乙個原型物件 1 當建立乙個變數時 var aa new object 等價於var aa aa.name fjs console.log aa.proto object.prototyp...
javascript 高階 基於原型鏈的繼承
function parent parent.prototype.parentvalue function function children 將children的原型指向parent的乙個例項,完成繼承 children.prototype new parent children.prototyp...
Javascript學習筆記2 繼承 原型鏈
使某個原型物件成為另乙個型別的例項,該原型物件將包含乙個指向另乙個原型的指標,如此層層遞進,就構成了例項與原型的鏈條 function supertype supertype.prototype.getsupervalue function function subtype 繼承 subtype.p...