Lua程式設計(四)物件導向類繼承

2022-02-03 12:33:30 字數 1358 閱讀 6306

1.類繼承

①**

sharp =   --①  父類

function sharp:

new()

local new_sharp =

self.__index = self --②,self ==sharp

setmetatable(new_sharp, self) --③

return

new_sharp

endfunction sharp:sharp_func()

print(

"sharp call sharp_func")

endfunction sharp:name()

print(

"sharp call name")

endfunction sharp:val()

print(

string.format("

sharp call val %d

", self._val))

endcircle = sharp:new() --① 子類

function circle:

new()

local new_circle ={}

self.__index = self --②,self ==circle

setmetatable(new_circle, self) --③

return

new_circle

end--新函式

function circle:circle_func()

print(

"circle call circle_func")

end--覆蓋函式name

function circle:name()

print(

"circle call name")

end--覆蓋函式val

function circle:val()

print(

string.format("

circle call val %d

", self._val))

end

②呼叫**

local circle = circle:new

()circle._val = 2 --覆蓋賦值

circle:sharp_func() --呼叫父類函式

circle:circle_func() --呼叫新函式

circle:name() --呼叫覆蓋函式

circle:val() --呼叫覆蓋函式

③輸出結果

四 物件導向 繼承

繼承 一 什麼是繼承 概念 父親有的東西,並且允許繼承,所有孩子就都會有 乙個父類可以擁有多個子類 乙個子類只能擁有乙個父類 二 父子之間的轉換 子類可以轉換成父類,這個父類只能轉換成之前的子類 子類可繼承父類,父類可代表子類 兄弟之間不可繼承。namespace 繼承 namespace 繼承 p...

核心程式設計(四) 物件導向 單繼承 複寫

繼承的出現!就是乙個作用!為了節省 為什麼說節省 你爸爸要是王健林 你是不是就不用愁怎麼獲得錢了?為啥?是不是錢已經有了!直接拿來用就行了!我們想一下奧 狗和人是不是都會吃東西?那麼吃東西這個東西是不是算是他倆的共有屬性?那我就可以把這個吃東西當作父類,讓人和狗繼承 coding utf 8 tim...

核心程式設計(四) 物件導向 單繼承 複寫

繼承的出現!就是乙個作用!為了節省 為什麼說節省 你爸爸要是王健林 你是不是就不用愁怎麼獲得錢了?為啥?是不是錢已經有了!直接拿來用就行了!我們想一下奧 狗和人是不是都會吃東西?那麼吃東西這個東西是不是算是他倆的共有屬性?那我就可以把這個吃東西當作父類,讓人和狗繼承 coding utf 8 tim...