物件導向類別閉包範例

lua-users home
wiki

-- example class
Class = {
  
  -- class vars
  class_var = 123,
  
  -- ctor
  new = function()
    local self = {}
    
    -- member vars
    self.member_var = 456
    
    -- methods
    self.method = function()
      self.member_var = self.member_var + 1
    end
    
    return self
  end,
  
  -- static methods
  static_method = function()
  end,
}

-- example derived class
DerivedClass = {
  new = function()
    self = Class.new() -- base class
    
    -- override a method
    self.method = function()
      self.member_var = self.member_var + 2
    end
    
    return self
  end,
}

-- example usage
obj = DerivedClass.new()
obj.method()
print(obj.member_var)

RecentChanges · 偏好設定
編輯 · 歷史記錄
上次編輯 2011年5月4日上午 8:32 GMT (diff)