Inheritance and Modules
Method Override
A subclass can replace a parent method with behavior that fits the more specific class.
Method Override
method_override.rb
class Vehicle
def move(speed)
"moving at #{speed}"
end
end
class Bicycle < Vehicle
def move(speed)
"pedaling at #{speed}"
end
end
speed =
vehicle = Vehicle.new
bicycle = Bicycle.new
puts vehicle.move(speed)
puts bicycle.move(speed)
class Vehicle
def move(speed)
"moving at #{speed}"
end
end
class Bicycle < Vehicle
def move(speed)
"pedaling at #{speed}"
end
end
speed =
vehicle = Vehicle.new
bicycle = Bicycle.new
puts vehicle.move(speed)
puts bicycle.move(speed)
class Vehicle
def move(speed)
"moving at #{speed}"
end
end
class Bicycle < Vehicle
def move(speed)
"pedaling at #{speed}"
end
end
speed =
vehicle = Vehicle.new
bicycle = Bicycle.new
puts vehicle.move(speed)
puts bicycle.move(speed)
method override
When a subclass defines a method with the same name, Ruby uses the subclass version.