Luaはクラス継承を作成します
971 ワード
クラスを作成
~~~ lua
--Shapeという名前のベースクラスを定義します
-ctor()はクラスのコンストラクション関数で、Shapeを呼び出しています.New()Shapeオブジェクトインスタンスを作成すると自動的に実行されます
--Shapeにdraw()というメソッドを定義します.
--CircleはShapeの継承クラスです
--親を上書きする同じ名前のメソッド
~~~ lua
--Shapeという名前のベースクラスを定義します
local Shape = class("Shape")
- -ctor()はクラスのコンストラクション関数で、Shapeを呼び出しています.New()Shapeオブジェクトインスタンスを作成すると自動的に実行されます
function Shape:ctor(shapeName)
self.shapeName = shapeName
printf("Shape:ctor(%s)", self.shapeName)
end
--Shapeにdraw()というメソッドを定義します.
function Shape:draw()
printf("draw %s", self.shapeName)
end
--CircleはShapeの継承クラスです
local Circle = class("Circle", Shape)
function Circle:ctor()
-- ctor() ,
-- .super
Circle.super.ctor(self, "circle")
self.radius = 100
end
function Circle:setRadius(radius)
self.radius = radius
end
--親を上書きする同じ名前のメソッド
function Circle:draw()
printf("draw %s, raidus = %0.2f", self.shapeName, self.raidus)
end