學習筆記 lua中基於原型的繼承

2021-09-30 10:20:25 字數 1859 閱讀 6728

如何建立乙個基類;

如何利用基類建立乙個例項;

如何用基類派生乙個子類;

如何用子類建立乙個例項;

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...