ООП В Жизни. Как понять

Всем привет!

Хочу узнать конкретнее, что такое ооп, если рассказать именно на примере жизни.

И как называют объекты, т.е. классы? Вроде называют сущностями. Прошу не кидаться тапками, изучаю python и смотрю про объектно-ориентированое мышление.ж


Ответы (1 шт):

Автор решения: afjord

На примере из жизни, так на примере из жизни.
Есть Котики(это класс), а есть кот Барсик(это экземпляр класса Котики). В свою очередь все коты принадлежат к семейству кошачьих. Так же как и гепарды. У них есть что-то общее, но есть и различия (гепарды мурчать не умеют). И получается, что Кошачьи - суперкласс для Котиков и для Гепарда, это уже наследование.
Также котиков можно отнести к Домашним животным, как и Аквариумных рыбок. Что за теми, что за другими нужно убирать (менять лоток или воду в аквариуме), их нужно кормить. Кормёжку и уборку можно вынести в отдельный интерфейс (не знаю как это происходит в Pyton). После реализации этого интерфейса можно по его типу вызывать разные методы для конкретной реализации. Это полиморфизм.
Тажке котика можно кормить рыбой или кормом. Т.е. можно в классе Котики создать метод покормить в первой реализации в качестве параметров указать Рыбу, во второй - Сухой корм. Т.е методов по факту два, но называние у них одно. Это так же полиморфизм.
UPD. Забыл про инкапсуляцию.
Каждый Котик имеет кличку, окрас, возраст. Эти состояния имеет смысл связать с котом. Т.е. нужно "положить" их в класс Котиков. Другими словами инкапсулировать. Так же понятие инкапсуляции связано с сокрытием данных. Например котика крайне нежелательно переименовывать с Барсика, на Мурку (отзываться перестанет), а про окрас вообще молчу. Имеет смысл поле кличка сделать private, а доступ к нему получать с помощью специального метода (геттера), который вернёт эту кличку.

→ Ссылка