Основные типы отношений между классами: ассоциация, композиция, агрегация, наследование и реализация.
Композиция — это отношения части-целого. Часть в композиции может быть частью только одного объекта за раз. Например: cердце, которое является частью тела одного человека, не может быть частью тела ещё одного человека одновременно.
*Тыкни чтобы посмотреть картинку*
Агрегация в отличие от композиции, части могут принадлежать более чем одному целому за раз, и целое не управляет существованием и временем жизни частей. Например, отношения между человеком и его домашним адресом. У каждого человека есть свой адрес. Однако этот адрес может принадлежать более чем одному человеку за раз: например, вам и вашему соседу по комнате или родственникам, которые живут вместе с вами. Однако этот адрес не управляется человеком — адрес существовал до того, как человек заселился и будет существовать после того, как человек выселится. Кроме того, человек знает, по какому адресу он живет, но адрес, в свою очередь, не знает, что это за человек и вообще, сколько их там находится.
*Тыкни чтобы посмотреть картинку*
Ассоциация в отличие от композиции или агрегации, где часть является частью целого, объекты между собой никак не связаны. Подобно агрегации, первый объект может принадлежать сразу нескольким объектам одновременно и не управляется ими. Однако, в отличие от агрегации, где отношения однонаправленные, в ассоциации отношения могут быть как однонаправленными, так и двунаправленными (когда оба объекта знают о существовании друг друга).
*Тыкни чтобы посмотреть картинку*
Наследование является базовым принципом ООП и позволяет одному классу (наследнику) унаследовать функционал родительского класса. Нередко отношения наследования еще называют генерализацией или обобщением. Пример: существует класс "Транспорт", у него есть метод "Движение". Мы создаем класс "Самокат", который наследует метод "Движение".
*Тыкни чтобы посмотреть картинку*
Реализация предполагает реализацию методов некоторого абстрактного класса (интерфейса) в классе-наследнике.
*Тыкни чтобы посмотреть картинку*
Композиция — это отношения части-целого. Часть в композиции может быть частью только одного объекта за раз. Например: cердце, которое является частью тела одного человека, не может быть частью тела ещё одного человека одновременно.
*Тыкни чтобы посмотреть картинку*
Агрегация в отличие от композиции, части могут принадлежать более чем одному целому за раз, и целое не управляет существованием и временем жизни частей. Например, отношения между человеком и его домашним адресом. У каждого человека есть свой адрес. Однако этот адрес может принадлежать более чем одному человеку за раз: например, вам и вашему соседу по комнате или родственникам, которые живут вместе с вами. Однако этот адрес не управляется человеком — адрес существовал до того, как человек заселился и будет существовать после того, как человек выселится. Кроме того, человек знает, по какому адресу он живет, но адрес, в свою очередь, не знает, что это за человек и вообще, сколько их там находится.
*Тыкни чтобы посмотреть картинку*
Ассоциация в отличие от композиции или агрегации, где часть является частью целого, объекты между собой никак не связаны. Подобно агрегации, первый объект может принадлежать сразу нескольким объектам одновременно и не управляется ими. Однако, в отличие от агрегации, где отношения однонаправленные, в ассоциации отношения могут быть как однонаправленными, так и двунаправленными (когда оба объекта знают о существовании друг друга).
*Тыкни чтобы посмотреть картинку*
Наследование является базовым принципом ООП и позволяет одному классу (наследнику) унаследовать функционал родительского класса. Нередко отношения наследования еще называют генерализацией или обобщением. Пример: существует класс "Транспорт", у него есть метод "Движение". Мы создаем класс "Самокат", который наследует метод "Движение".
*Тыкни чтобы посмотреть картинку*
Реализация предполагает реализацию методов некоторого абстрактного класса (интерфейса) в классе-наследнике.
*Тыкни чтобы посмотреть картинку*
READ OTHER POSTS