Практическая информатика


         

в классе млекопитающих реализовать метод


В нашем примере следует в классе млекопитающих реализовать метод "потомство" (родить детеныша), в классах собак и кошек этот метод будет отсутствовать (система будет искать его в родительском классе и найдет его там), а в классе утконосов нужно написать новый метод, с тем же именем, но другой реализацией (отложить яйца).

Итак, в основе ООП лежат три основных понятия:

  • инкапсуляция (сокрытие данных в классе или методе);
  • наследование;
  • полиморфизм.


Инкапсуляцию можно представить, как защитную оболочку вокруг кода данных, с которыми этот код работает. Оболочка задает поведение и защищает код от произвольного доступа извне.

Наследование - это процесс, в результате которого один тип наследует свойства другого типа.

Полиморфизм - это концепция, позволяющая иметь различные реализации для одного и того же метода, которые будут выбираться в зависимости от типа объекта, переданного методу при вызове.

Пример

Для иллюстрации некоторых принципов ООП приведем небольшую программу на языке Ruby, который тоже поддерживает объектно-ориентированный стиль программирования.

Поместите в файл с именем life.rb фрагмент кода, расположенный ниже.

#!/usr/bin/ruby

class Animal def breath #Дыхание print "все животные дышат: вдохнули и выдохнули\n" end end

class Cat<Animal def bark # Подать голос print "Mew Mew, я кошка. \n" end end

class Dog def bark # Подать голос print "Bow Wow, я собака. \n" end end

class Bird def lay_egg print "Яйцо снесено\n" end def fly print "Я птица, я лечу!!!\n" end end

class Penguin<Bird def fly print "Пингвины не летают!!!\n" end end

# Создаем объекты разных классов pochi = Dog.new pochi.bark

tama = Cat.new tama.breath tama.bark

macaw = Bird.new macaw.lay_egg macaw.fly

penguin = Penguin.new penguin.lay_egg penguin.fly

(скачать файл life.rb)

Для запуска этой программы выполните в окне shell команду

ruby life.rb

Если вы поняли, какой мир описывает данная программа, то попробуйте справиться с приведенными ниже заданиями.

Задания

  1. Создайте еще одну кошку.
  2. Объясните, кем является pochi и сможет ли он выполнить команду pochi.breath (дышать)? Если нет, то внесите соответствующие изменения в текст программы.
  3. Измените код программы так, чтобы и птицы в ней тоже умели дышать.



Содержание  Назад  Вперед