矩形类
本课属于 Coddy Lua 学习旅程的“面向对象编程”单元。第 56 课,共 70 课。
挑战
简单现在,让我们扩展 Shape Manager,创建一个继承自你在上一课中构建的基类 Shape 的 Rectangle 类。
你将使用 3 个文件来整理代码:
Shape.lua:上一挑战中的基类 Shape(包含:new(name)和:getName())。Rectangle.lua:创建一个继承自 Shape 的 Rectangle 类。构造函数应接受width和height,使用名称"Rectangle"调用父类构造函数,并保存尺寸。添加一个:getArea()方法,用于计算并返回矩形的面积。main.lua:引入你的 Rectangle 模块,从输入中读取 width 和 height,创建一个 Rectangle 实例,并将它的名称和面积分别打印在单独的行上。
记得正确设置继承关系,这样 Rectangle 实例就能通过原型链访问 Shape 的方法。
输入:两行:第一行包含宽度(数字),第二行包含高度(数字)。
输出:两行:第一行是矩形通过 :getName() 返回的名称,第二行是通过 :getArea() 返回的面积。
亲手试试
-- 加载 Rectangle 模块
local Rectangle = require('Rectangle')
-- 从输入中读取宽度和高度
local width = tonumber(io.read())
local height = tonumber(io.read())
-- 用给定的尺寸创建一个新的 Rectangle 实例
local rect = Rectangle:new(width, height)
-- 打印矩形的名称和面积
print(rect:getName())
print(rect:getArea())
面向对象编程中的所有课
自己练习: Lua 在线编译器