Наследование и полиморфизм
Изучите повторное использование кода через наследование классов и переопределение методов в Ruby
«Наследование и полиморфизм» — бесплатный урок Ruby Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Ruby Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Ruby Academy содержит 4 уроков всего.
Расширение классов в Руби
Наследование и полиморфизм
Наследование позволяет классу наследовать поведение другого класса.
Полиморфизм позволяет разным классам по-разному реагировать на один и тот же метод.
В этом уроке Вы научитесь использовать наследование и полиморфизм в Руби.

Использование наследования
Использование наследования
Дочерний класс наследует поведение родительского класса с помощью <.
class Animal
def speak
puts 'Animal makes a sound'
end
end
class Dog < Animal
end
dog = Dog.new
dog.speakВызов метода родительского класса
Вызов метода родительского класса
Ключевое слово super вызывает метод родительского класса.
class Animal
def speak
puts 'Animal makes a sound'
end
end
class Dog < Animal
def speak
super
puts 'Dog barks'
end
end
dog = Dog.new
dog.speakПереопределение методов
Переопределение методов
Дочерний класс может переопределить метод родительского класса.
class Animal
def speak
puts 'Animal makes a sound'
end
end
class Dog < Animal
def speak
puts 'Dog barks'
end
end
dog = Dog.new
dog.speakПонимание полиморфизма
Понимание полиморфизма
Разные классы могут по-разному реализовывать один и тот же метод.
class Animal
def speak
puts 'Animal makes a sound'
end
end
class Dog < Animal
def speak
puts 'Dog barks'
end
end
class Cat < Animal
def speak
puts 'Cat meows'
end
end
dog = Dog.new
dog.speak
cat = Cat.new
cat.speakСохранение методов родительского класса
Сохранение методов родительского класса
Дочерний класс может расширить метод, а не полностью заменить его.
class Animal
def speak
puts 'Animal sound'
end
end
class Bird < Animal
def speak
super
puts 'Bird chirps'
end
end
bird = Bird.new
bird.speakРасширение методов с помощью открытых классов
Расширение методов с помощью открытых классов
Руби позволяет повторно открывать классы и динамически изменять их методы.
class String
def shout
self.upcase + '!!!'
end
end
puts 'hello'.shoutИтоговый пример переопределения
Итоговый пример переопределения
Переопределяйте методы, чтобы задавать особое поведение для дочерних классов.
class Vehicle
def move
puts 'Vehicle is moving'
end
end
class Car < Vehicle
def move
puts 'Car is driving'
end
end
car = Car.new
car.moveПоздравляем!
Поздравляем!
Вы научились использовать наследование и полиморфизм в Руби.
Далее Вы познакомитесь с примесями и модулями.

Часто задаваемые вопросы
Урок «Наследование и полиморфизм» бесплатный?
Да — полный текст урока «Наследование и полиморфизм» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Ruby Academy, подпишись на CoddyKit PRO. Курс Ruby Academy содержит 4 уроков всего.
Чему я научусь в уроке «Наследование и полиморфизм»?
Изучите повторное использование кода через наследование классов и переопределение методов в Ruby Ты практикуешь Ruby Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Ruby Academy?
Предыдущий опыт не требуется. Ruby Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Наследование и полиморфизм»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Ruby Academy?
Да. Каждый урок Ruby Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Классы и объекты
- Переменные экземпляра и методы
- Наследование и полиморфизм
- Модули и примеси