zoukankan      html  css  js  c++  java
  • Lua程序设计(四)面向对象类继承

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

     ③输出结果

  • 相关阅读:
    Java的XML解析
    Jackson解析XML
    Eclipse配置MyBatis的xml自动提示【转】
    mui消息框alert,confirm,prompt,toast
    base64编码的作用【转】
    一个mui扩展插件mui.showLoading加载框【转】
    RabbitMQ的使用场景
    Spring集成RabbitMQ
    消息确认机制
    Java操作队列
  • 原文地址:https://www.cnblogs.com/tinywan/p/6950194.html
Copyright © 2011-2022 走看看