Advertisement
Guest User

lua prototype class

a guest
Jul 24th, 2014
239
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 0.62 KB | None | 0 0
  1. Class = {}
  2.  
  3. function Class.__create(self,...)
  4. local a = {}
  5. local mt = {__index = self, __call = self.__create}
  6. setmetatable(a,mt)
  7. if a.__new then a:__new(...) end
  8. return a
  9. end
  10.  
  11. function Class.__new(self,name) self.__classname = name end
  12.  
  13. Class_mt = {__call=Class.__create}
  14. setmetatable(Class,Class_mt)
  15.  
  16. Animal = Class("Animal")
  17. function Animal:__new(type) self.type = type end
  18. function Animal:talk() print(self.type, self.say) end
  19. function Animal:say(text) self.say = text end
  20.  
  21. dog = Animal("dog")
  22. dog:say("ciao")
  23. dog:talk()
  24.  
  25. cat = Animal("cat")
  26. cat:say("hi")
  27. cat:talk()
  28.  
  29. print(dog.__classname,cat.__classname)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement