21 lines
450 B
Text
21 lines
450 B
Text
class Camera
|
|
function snap() print("taking a photo") end
|
|
end
|
|
|
|
class Phone
|
|
function call() print("calling home") end
|
|
end
|
|
|
|
class Cameraphone extends Camera
|
|
function __construct(public phone) end -- uses composition for the Phone part
|
|
|
|
-- Inherits Camera's snap() method.
|
|
|
|
-- Phone's call() method can be wrapped.
|
|
function call() self.phone:call() end
|
|
end
|
|
|
|
local p = new Phone()
|
|
local cp = new Cameraphone(p)
|
|
cp:snap()
|
|
cp:call()
|