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