Наследование в Ruby
НАВИГАЦИЯ ПО СТРАНИЦЕ
В языке Ruby наследование является механизмом объектно-ориентированного программирования, который позволяет создавать иерархии классов для повторного использования кода и организации функциональности.
class Animal
attr_accessor :name
def initialize(name)
@name = name
end
def speak
puts "#{@name} makes a sound."
end
end
# Класс Dog наследует от класса Animal
class Dog < Animal
def speak
puts "#{@name} barks loudly!"
end
end
# Создание объектов
animal = Animal.new("Generic Animal")
dog = Dog.new("Buddy")
# Вызов методов
animal.speak
dog.speak
В данном примере у нас есть класс Animal, который имеет атрибут name и метод speak. Затем класс Dog наследует от класса Animal, расширяя его функциональность методом speak. Создав экземпляры обоих классов, мы можем видеть, как вызов метода speak различается для каждого класса.
Наследование также позволяет создавать специализированные
class Cat < Animal
def speak
puts "#{@name} meows softly."
end
end
# Создание объекта класса Cat
cat = Cat.new("Whiskers")
cat.speak
Здесь класс Cat также наследует от класса Animal, но переопределяет метод speak для предоставления собственной реализации. Это позволяет каждому подклассу использовать унаследованные методы или предоставить свою уникальную логику.
Основная идея наследования в Ruby заключается в том, чтобы сделать код более гибким, уменьшить дублирование кода и обеспечить легкость изменения и расширения программы.