Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function extended (child, parent)
- setmetatable(child,{__index = parent})
- end
- Person = {}
- function Person:new(name)
- local public = {}
- public.name = name or "Вася"
- --это открытый метод, его можно переопределить
- function Person:getName2()
- return "Person "..self.name
- end
- setmetatable(public,self)
- self.__index = self; return public
- end
- --создадим класс, унаследованный от Person
- Woman = {}
- extended(Woman, Person) --не забываем про эту функцию
- --переопределим метод getName2()
- function Woman:getName2()
- return "Woman "..self.name
- end
- --создадим класс, унаследованный от Person
- Man = {}
- extended(Man, Person) --не забываем про эту функцию
- --переопределим метод getName2()
- function Man:getName2()
- return "Man "..self.name
- end
- --проверим
- masha = Woman:new("masha")
- misha = Man:new("Misha")
- print(masha:getName2())
- print(misha:getName2())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement