Наследование в 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 заключается в том, чтобы сделать код более гибким, уменьшить дублирование кода и обеспечить легкость изменения и расширения программы.