zoukankan      html  css  js  c++  java
  • Lua类对象的继承

    1、基类如下

    local myClass = {}
    
    function myClass:new()
    	local self = {}
    	setmetatable(self,{__index = myClass})
    end
    
    local a = 0
    local b = 0
    local c = 0
    
    return myClass
    

    2、我们现在定义一个继承基类的类

    local myClass1 = require "myClass"
    
    local myClass2 = {}
    
    function myClass2:new()
    	setmetatable(myClass2,{__index = myClass1})
    	local self = {}
    	setmetatable(self,{__index = myClass2})
    	return self
    end
    
    return myClass2
    

    继承的原理:

    也是同C#类似,这个类的self还是包含自己的,我们再说说继承。

    继承就是让myClass2继承自myClass1,让myClass2的元表的元方法等于myClass1,这样通过myClass2就能通过元方法找到基类的属性或者方法了。

    然后我们去实例化myClass2。

    local myClassObject = myClass2:new();
    print(myClassObject.a)
    print(myClassObject.b)
    print(myClassObject.c)
    

    这样 myClassObject.a、myClassObject.b、myClassObject.c其实就是基类myClass1中的a、b、c的值,默认初始值为nil。

  • 相关阅读:
    工作的开端五
    工作的开端一
    工作的开端四
    工作的开端三
    工作的开端二
    springMVC基础配置
    3
    2
    文件操作Utils方法1
    解压zip并解析excel
  • 原文地址:https://www.cnblogs.com/vsirWaiter/p/7566587.html
Copyright © 2011-2022 走看看