oop/super/super.rb

tests/_examples/oop/super/super.rb in the metorex repository.

class Animal
  def initialize(name)
    @name = name
  end

  def speak
    "Some sound"
  end

  def describe
    "I am an animal"
  end

  attr_reader :name
end

class Dog < Animal
  def initialize(name, breed)
    super(name)
    @breed = breed
  end

  def speak
    parent_sound = super()
    parent_sound + " -> Woof!"
  end

  def describe
    parent_desc = super()
    parent_desc + " named " + @name
  end

  attr_reader :breed
end

dog = Dog.new("Buddy", "Golden Retriever")
puts dog.name
puts dog.breed
puts dog.speak
puts dog.describe