基于lua语言实现面向对象编程

复制代码
-- 使用表实现面向对象里类的定义
Person = {name="",age=0}
function Person:eat( food )
    print(self.name.." is eating "..food)
end
-- 创建类的构造方法
function Person:new(name,age)
    local t = {name=name,age=age}
    setmetatable(t,{__index=self})
    return t
end

-- 类的实例化和类方法的调用
p1 = Person:new("navy",18)
p1:eat("apple")
p2 = Person:new("summer",19)
p2:eat("pear")

-- 类的继承
Student = Person:new()
function Student:read()
    print(self.name.." is reading a book")
end
s = Student:new("summernavy",18)
s:read()


Teacher = Person:new()
function Teacher:teach(course)
    print(self.name.." is teaching "..course)
end
t = Teacher:new("navysummer",28)
t:teach("English")
复制代码

 

posted @   NAVYSUMMER  阅读(61)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
历史上的今天:
2019-01-15 Matlab中的基本数据类型介绍
2019-01-15 MATLAB数据类型
交流群 编程书籍
点击右上角即可分享
微信分享提示