交通工具類:vehicle(速度 /通過里程數求時間) --父類
local vehicle={}
1.1父類構造function vehicle:new(speed)
local o={}
o.speed=speed or 0
setmetatable(o,self)
self.__index=self
return o
end
1.2:父類方法:speakfunction vehicle:speak()
print("speak")
end
1.3:父類方法:runfunction vehicle:run(miles)
return miles /self.speed
end
local car=vehicle:new() ---car類名
2.1:給car新增加方法function car:zairen()
print("zairen")
end
2.2:重寫父類speak函式function car:speak()
print("di di di")
end
2.3:建立car的物件local car= car:new(100) ---car的元表是car
print(car:run(200)) --呼叫父類的方法
car:zairen() --呼叫自身car的方法
car:speak()
-- local car2= car:new(100) ---car的元表是car
-- print(car2:run(300)) --呼叫父類的方法
-- car2:zairen() --呼叫自身car的方法
local truck=vehicle:new()
3.1重寫父類function truck:speak()
print("do do do")
end
3.2 :建立truck物件local truck=truck:new(100)
truck:speak()
作為檔案引用物件返回,方便其他檔案使用return car
lua實現偽多型繼承
通過lua的設定元表 index欄位,巧妙的運用在無法索引到物件的key時會呼叫 index的機制,實現了偽多型 繼承。如下 inheritance classtotaltable function inheritance class father local classvo classvo.con...
繼承與多型
繼承 繼承是c 語言支援 重用及多型的重要機制。通過繼承,可以繼承可以在現有類的基礎上派生出新類,新類將共享現有類的成員,並且還可以新增新的成員。c 語言中,重用主要表現為可以使用現成的類 如.net框架類庫中的類 來定義新類,主要方法有組合和繼承兩種 繼承是物件導向程式設計支援 重用的另乙個重要機...
繼承與多型
虛函式只要在基類裡定義,所以繼承類都不用重新定義為虛函式,自動成為虛函式。虛函式必須有實現,普通成員函式在沒有呼叫時可以沒有實現 定義 class animal 只需要在基類定義函式為虛,子類中不需要新增virtual.smile函式在沒有呼叫時可以不實現。當有函式為虛函式時,析構函式應定義為vir...