0Pricing
Ruby Academy · Урок

Наследование и полиморфизм

Изучите повторное использование кода через наследование классов и переопределение методов в Ruby

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

Расширение классов в Руби

Наследование и полиморфизм

Наследование позволяет классу наследовать поведение другого класса.

Полиморфизм позволяет разным классам по-разному реагировать на один и тот же метод.

В этом уроке Вы научитесь использовать наследование и полиморфизм в Руби.

Наследование и полиморфизм — иллюстрация 1

Использование наследования

Использование наследования

Дочерний класс наследует поведение родительского класса с помощью <.

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

Поздравляем!

Поздравляем!

Вы научились использовать наследование и полиморфизм в Руби.

Далее Вы познакомитесь с примесями и модулями.

Наследование и полиморфизм — иллюстрация 10

Часто задаваемые вопросы

Урок «Наследование и полиморфизм» бесплатный?

Да — полный текст урока «Наследование и полиморфизм» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 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 — локальная установка не требуется.

Все уроки этого курса

  1. Классы и объекты
  2. Переменные экземпляра и методы
  3. Наследование и полиморфизм
  4. Модули и примеси
← Назад к Ruby Academy