Разница между наследованием и контейнеровозом

Разница между наследованием и контейнеровозом
Разница между наследованием и контейнеровозом

Видео: Разница между наследованием и контейнеровозом

Видео: Разница между наследованием и контейнеровозом
Видео: Композиция или Наследование в JavaScript? 2024, Ноябрь
Anonim

Наследование и контейнеровоз

Наследование и контейнеризация - две важные концепции ООП (пример объектно-ориентированного программирования: C++). Проще говоря, и Containership, и Inheritance имеют дело с предоставлением дополнительных свойств или поведения для класса. Наследование - это способность класса наследовать свойства и поведение родительского класса путем его расширения. С другой стороны, Containership - это способность класса содержать объекты разных классов в качестве данных-членов.

Что такое наследование?

Как упоминалось выше, наследование - это способность класса наследовать свойства и поведение от родительского класса путем его расширения. Наследование по существу обеспечивает повторное использование кода, позволяя расширять свойства и поведение существующего класса вновь определенным классом. Если класс A расширяет B, то класс B называется родительским классом (или суперклассом), а класс A называется дочерним классом (или производным классом/подклассом). В этом примерном сценарии класс A унаследует все общедоступные и защищенные атрибуты и методы суперкласса (B). Подкласс может дополнительно переопределять (предоставлять новые или расширенные функциональные возможности методам) поведение, унаследованное от родительского класса. Наследование представляет собой отношение «является» в ООП. По сути, это означает, что A также является B. Другими словами, B может быть классом с общим описанием определенного объекта реального мира, но A определяет определенную специализацию. В реальной задаче программирования класс Person может быть расширен для создания класса Employee. Это называется специализация. Но вы также можете сначала создать класс Employee, а затем обобщить его и на класс Person (т.е. обобщение). В этом примере Сотрудник будет иметь все свойства и поведение Человека (т.е. Сотрудник также является Лицом) и может также содержать некоторые дополнительные функции (таким образом, Человек не является Сотрудником).

Что такое контейнеровоз?

Containership - это способность класса содержать объекты разных классов в качестве данных-членов. Например, класс A может содержать объект класса B в качестве члена. Здесь все общедоступные методы (или функции), определенные в B, могут выполняться внутри класса A. Класс A становится контейнером, а класс B становится содержащимся классом. Контейнеровоз также называют составом. В этом примере можно сказать, что класс A состоит из класса B. В ООП Containership представляет отношение «есть-а». Важно отметить, что хотя у контейнера есть доступ для выполнения всех общедоступных методов содержащегося в нем класса, он не может изменять или предоставлять дополнительные функции. Когда дело доходит до реальной проблемы программирования, объект класса TextBox может содержаться в классе Form, и, таким образом, можно сказать, что форма содержит TextBox (или, альтернативно, форма состоит из TextBox).

Разница между наследованием и контейнерным судном

Хотя наследование и контейнеризация - это две концепции ООП, они совершенно разные в том, что они позволяют достичь программисту. Наследование - это способность класса наследовать свойства и поведение от родительского класса путем его расширения, а Containership - это способность класса содержать объекты разных классов в качестве данных-членов. Если класс расширен, он наследует все общедоступные и защищенные свойства/поведение, и эти поведения могут быть переопределены подклассом. Но если класс содержится в другом, контейнер не получает возможности изменить или добавить поведение к содержащемуся. Наследование представляет собой отношение «является» в ООП, в то время как Containership представляет отношение «имеет».

Рекомендуемые: