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()