Так где же мы можем применить обобщение?
Если мы можем повторно использовать код внутри метода и метод внутри класса, то можем ли мы повторно использовать код класса?
Можем ли мы обобщить классы?
Обобщение является одним из основных принципов объектно-ориентированного моделирования и программирования.
Но здесь обобщение достигается иначе, чем обобщение с помощью методов.
Обобщение в ООП может быть выполнено классами через наследование.
В обобщении мы принимаем повторяющиеся, общие характеристики двух или более классов и переносим их в другой класс.
В частности, вы можете иметь два класса, родительский класс и дочерний класс.
Когда дочерний класс наследуется от родительского класса, дочерний класс будет иметь атрибуты и поведение родительского класса.
Вы размещаете общие атрибуты и поведение в своем родительском классе.
Может быть несколько дочерних классов, которые наследуются от родительского класса, и все они получат эти общие атрибуты и поведение.
У дочерних классов также могут быть дополнительные атрибуты и поведение, которые позволяют им быть более специализированными в том, что они могут делать.
В стандартной терминологии родительский класс известен как суперкласс, а дочерний класс называется подклассом.
Одно из преимуществ такого обобщения заключается в том, что любые изменения кода, которые являются общими для обоих подклассов, могут быть сделаны только в суперклассе.
Второе преимущество заключается в том, что мы можем легко добавить больше подклассов в нашу систему, не выписывая для них все общие атрибуты и поведение.
Через наследование все подклассы класса будут обладать атрибутами и поведением суперкласса.
Наследование и методы иллюстрируют принцип обобщения в проектировании.
Мы можем писать программы, способные выполнять одни и те же задачи, но с меньшим количеством кода.
Это делает код более многоразовым, потому что разные классы или методы могут совместно использовать одни и те же блоки кода.
Системы упрощаются, потому что у нас нет повторяющегося кода.
Обобщение помогает создать программное обеспечение, которое будет легче расширять, проще применять изменения и упрощает его поддержку.
Обобщение и наследование являются одной из наиболее сложных тем в объектно-ориентированном программировании и моделировании.
Наследование – это мощный инструмент проектирования, который помогает создавать понятные, многоразовые и поддерживаемые программные системы.
Однако неправильное наследование может привести к плохому коду.
Это происходит, когда принципы проектирования используются ненадлежащим образом, создавая больше проблем, хотя они предназначены для их решения.
Итак, как мы можем понять, злоупотребляем ли мы наследованием?
Есть несколько моментов, о которых нужно знать, когда рассматривается