Aumentando la Conducta Mediante Encadenamiento

Cuando queremos aumentar la funcionalidad de un método de la clase de la que se hereda es necesario invocar el método sobreescrito desde la nueva versión del método. Esto se consigue mediante la palabra reservada super.

~/rubytesting/TheRubyProgrammingLanguage/Chapter7ClassesAndModules$ cat -n Point3D.rb 
     1  require "Point"
     2  class Point3D < Point
     3    def initialize(x, y, z)
     4      super(x, y)
     5      @z = z
     6    end
     7  end
     8  if __FILE__ == $0
     9    p = Point3D.new(1,2,3)
    10    puts p.inspect
    11  end

Ejecución:

~/rubytesting/TheRubyProgrammingLanguage/Chapter7ClassesAndModules$ ruby Point3D.rb 
#<Point3D:0x1001622f8 @y=2, @x=1, @z=3>

Casiano Rodriguez León 2015-01-07