• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Lua面向对象之二:类继承

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

1.类继承

①代码 

Sharp = { _val = 1}  --①  父类

function Sharp:new()
    local new_sharp = { }
    self.__index = self  --②,self == Sharp
    setmetatable(new_sharp, self)  --

    return new_sharp
end

function Sharp:sharp_func()
    print("Sharp call sharp_func")
end

function Sharp:name()
    print("Sharp call name")
end

function Sharp:val()
    print(string.format("Sharp call val %d", self._val))
end


Circle = 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() --调用覆盖函数

  

 ③输出结果

 

 

 

Lua面向对象:

Lua面向对象之一:简单例子

Lua面向对象之二:类继承

Lua面向对象之三:其它一些尝试


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Lua string.gsub (s, pattern, repl [, n])发布时间:2022-07-22
下一篇:
Lua读表代码,自动生成字段名字发布时间:2022-07-22
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap