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

Оглавление:

Anonim

В главное отличие между абстракцией и наследованием заключается в том, что абстракция позволяет скрыть внутренние детали и отображать пользователям только функциональные возможности, а наследование позволяет использовать свойства и методы уже существующего класса.

Объектно-ориентированное программирование (ООП) - основная парадигма программирования. Это позволяет разработчикам легко моделировать сценарии реального мира, используя набор объектов. Многие современные языки программирования, такие как Java и C #, поддерживают ООП. Класс и объект являются строительными блоками программы ООП. Класс - это план, а объект - это экземпляр класса. Кроме того, существуют столпы ООП. Два из них - абстракция и наследование.

Абстракция, Абстрактный класс, Наследование, Интерфейс, Объект, ООП

Что такое абстракция

Абстракция - это методология сокрытия внутренних деталей и отображения пользователям только функциональных возможностей. Другими словами, пользователь или внешний мир не видят деталей внутренней реализации. Вместо этого он видит только функциональность. Концепция абстракции аналогична следующему примеру. Например, предположим, что это пульт дистанционного управления. Он состоит из набора кнопок для управления. Пользователь может изменять каналы, увеличивать громкость, изменять яркость и т. Д. Для работы ему не нужно знать о внутренних схемах контроллера. Абстракция похожа на это.

Языки программирования, такие как Java, поддерживают абстракцию. Программист может реализовать абстракцию, используя такие концепции, как абстрактный класс и интерфейс. Во-первых, абстрактный класс может состоять из абстрактных и не абстрактных методов. Класс, расширяющий абстрактный класс, должен предоставлять реализации абстрактных методов. Во-вторых, интерфейс - это набор абстрактных методов. В нем нет не абстрактных методов. Следовательно, класс, реализующий интерфейс, должен предоставлять реализации или определения методов для всех абстрактных методов в интерфейсе. В целом абстракция помогает снизить сложность системы.

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

Наследование - это методология использования свойств и методов уже существующего класса в новом классе. Существующий класс является родительским или суперклассом, а новый класс - дочерним или подклассом. Разработчику не нужно писать код с самого начала. Вместо этого он может использовать уже существующий код и разработать остальное. Следовательно, наследование допускает повторное использование кода.

Есть разные типы наследования. Они следующие.

Одноуровневое наследование - Если A и B - два класса, а B наследует A, то это одноуровневое наследование.

Многоуровневое наследование - Есть промежуточный класс. Существует три класса: A, B и C. B наследуется от A, а C наследуется от B.

Множественное наследование - Если A, B и C - три класса, и если C наследуется как от A, так и от B, то это множественное наследование.

Иерархическое наследование - Когда A, B и C являются тремя классами, а B и C наследуются от A, тогда это иерархическое наследование.

Гибридное наследование - Это сочетание многоуровневого и множественного наследования.

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

Определение

Абстракция - это концепция ООП, которая скрывает детали реализации и показывает пользователю только функциональные возможности. Напротив, наследование - это методология создания нового класса с использованием свойств и методов существующего класса. Таким образом, это отражает основное различие между абстракцией и наследованием.

Основное использование

Заключение

В целом абстракция и наследование - это совершенно разные концепции ООП, и они могут использоваться по-разному. Основное различие между абстракцией и наследованием заключается в том, что абстракция позволяет скрыть внутренние детали и отображать только функциональные возможности для пользователей, в то время как наследование позволяет использовать свойства и методы уже существующего класса.

Использованная литература:

1. «Наследование в Java - Javatpoint». Www.javatpoint.com, доступен здесь. 2. «Абстрактный класс в Java - Javatpoint». Www.javatpoint.com, доступен здесь.

Изображение предоставлено:

1. «Диаграмма наследования» Автор Pluke - собственная работа (CC0) через Commons Wikimedia.

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