Menu
CoddyTech

矩形类

本课属于 Coddy Lua 学习旅程的“面向对象编程”单元。第 56 课,共 70 课。

challenge icon

挑战

简单

现在,让我们扩展 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 在线编译器