Advertisement
MoarDm

Untitled

Oct 18th, 2019
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.11 KB | None | 0 0
  1. function extended (child, parent)
  2. setmetatable(child,{__index = parent})
  3. end
  4.  
  5. Person = {}
  6. function Person:new(name)
  7. local public = {}
  8. public.name = name or "Вася"
  9.  
  10. --это открытый метод, его можно переопределить
  11. function Person:getName2()
  12. return "Person "..self.name
  13. end
  14.  
  15. setmetatable(public,self)
  16. self.__index = self; return public
  17. end
  18.  
  19. --создадим класс, унаследованный от Person
  20. Woman = {}
  21. extended(Woman, Person) --не забываем про эту функцию
  22.  
  23. --переопределим метод getName2()
  24. function Woman:getName2()
  25. return "Woman "..self.name
  26. end
  27. --создадим класс, унаследованный от Person
  28. Man = {}
  29. extended(Man, Person) --не забываем про эту функцию
  30.  
  31. --переопределим метод getName2()
  32. function Man:getName2()
  33. return "Man "..self.name
  34. end
  35.  
  36. --проверим
  37. masha = Woman:new("masha")
  38. misha = Man:new("Misha")
  39.  
  40. print(masha:getName2())
  41. print(misha:getName2())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement