Это вторая и последняя часть этой серии. Если вы пропустили первый, прочтите ссылку ниже



Объектная ориентация включает четыре основных парадигмы

  1. Наследование
  2. Абстракция
  3. Полиформизм
  4. Инкапсуляция

Наследование

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

Вы можете увидеть 100 лет автомобильной революции. Не обращайте внимания на поезд. В 1900 году люди создали автомобиль с тремя колесами, теперь люди 1920 года создают еще один автомобиль, который был расширенной версией 1900 автомобилей. Но у них обоих одинаковые цели и функции, но модель 1920 года значительно превзошла модель 1900 года. В 2000 году люди создали действительно продвинутый автомобиль с большей скоростью, комфортом и многими другими функциями, который был расширен по сравнению с моделью 1980 года. Таким образом, каждая модель автомобиля наследует от предыдущей модели автомобиля и добавляет свои собственные функции. Но интересный факт: модель 1900 года понятия не имела, каким будет автомобиль в 2000 году. Вот почему в объектном мире родители на самом деле ничего не знают о своих детях. Другой возможный сценарий. Предположим, что модель 1980 года не хочет унаследовать модель 1960 года, а не хочет унаследовать модель 1920 года и создать современный автомобиль с нуля.

Теперь предположим, что 1900 год - это базовая машина, и все остальные машины унаследованы от этой машины. Многочисленные другие машины достались в наследство от машины 1900 года. Таким образом, у родительского объекта может быть много дочерних объектов. Но в конце концов, все они машины. Автомобиль не может выходить из лодки. То, что невозможно в реальном мире, невозможно и в объектном мире. Предположим, вы получили машину от отца, которая может быть унаследованной собственностью, но если вы получили машину от друга, это будет простая передача, и это не будет иметь ничего общего с наследством.

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

Абстракция

Можете ли вы распознать элемент на картинке ниже?

Конечно, знаешь. Это птица. Но знали ли вы эту птицу раньше или знали ее имя? Возможно. Но большинство из вас этого не сделает. Это очень редкая птица. Но как узнать, что это птица? Это потому, что у вас в голове есть прототип или идея птиц. Все, что похоже на эту идею, должно быть птицей.

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

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

Важно помнить, что сокрытие кода или реализации не является абстракцией, по крайней мере, в мире ООП. Абстракция имеет действительно широкий смысл. Иногда реализацию сокрытия можно назвать абстракцией, что верно в общем смысле, но на самом деле не имеет ничего общего с ООП. Это вообще нормальная абстракция.

Кстати, птицу звали киноварная мухоловка.

Полиморфизм

Полиморфизм - это поведение объекта в другой ситуации. Это отличная функция в ООП. Способный объект может вести себя по-разному в разных сценариях. Например, вы ведете себя формально со своим учителем, но неформально с друзьями и семьей. Мы ведем себя в офисе иначе, чем дома. Объект также может иметь такие возможности, и это - полиморфизм в ООП.

Инкапсуляция

Инкапсуляция - это целостность данных в объекте. У нас может быть много объектов в мире ООП. Каждый объект содержит свои собственные данные, и данные между объектами никогда не перекрываются. Если вы вызываете метод объекта, который будет только и только изменять или возвращать данные этого объекта. Это инкапсуляция в ООП.

Вкратце, об ООП. ООП можно понять по-разному, это лишь один из способов понять это. Но поскольку объект имеет значение, мы должны рассматривать основы ООП с точки зрения объекта, а не класса.

Надеюсь, вам понравится это читать :). Пожалуйста, оставьте свой отзыв.