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

Оглавление:

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

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

Видео: Разница между абстрактным классом и наследованием
Видео: Выпуск 20. Абстрактные классы и интерфейсы. Разница 2024, Декабрь
Anonim

Абстрактный класс против наследования

Абстрактный класс и Наследование - две важные объектно-ориентированные концепции, встречающиеся во многих объектно-ориентированных языках программирования, таких как Java. Абстрактный класс можно рассматривать как абстрактную версию обычного (конкретного) класса, тогда как наследование позволяет новым классам расширять другие классы. Абстрактный класс - это класс, который не может быть инициализирован, но может быть расширен. Таким образом, абстрактные классы имеют смысл иметь только в том случае, если язык программирования поддерживает наследование. В Java абстрактные классы объявляются с использованием ключевого слова Abstract, а ключевое слово Extends используется для наследования от (супер) класса.

Что такое абстрактный класс?

Как правило, абстрактные классы, также известные как абстрактные базовые классы (ABC), не могут быть созданы (экземпляр этого класса не может быть создан). Таким образом, абстрактные классы имеют смысл иметь только в том случае, если язык программирования поддерживает наследование (возможность создавать подклассы из расширения класса). Абстрактные классы обычно представляют абстрактную концепцию или сущность с частичной реализацией или без нее. Таким образом, абстрактные классы действуют как родительские классы, от которых происходят дочерние классы, так что дочерний класс будет разделять неполные функции родительского класса, а функциональные возможности могут быть добавлены для их дополнения.

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

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

Наследование - это объектно-ориентированная концепция, которая позволяет новым классам расширять другие классы. Ключевое слово extends используется для реализации концепции наследования в языке программирования Java. Наследование по существу обеспечивает повторное использование кода, позволяя расширять свойства и поведение существующего класса вновь определенным классом. Когда новый подкласс (или производный класс) расширяет суперкласс (или родительский класс), этот подкласс наследует все атрибуты и методы суперкласса. Подкласс может дополнительно переопределять поведение (предоставлять новые или расширенные функции методам), унаследованное от родительского класса. Как правило, подкласс A не может расширять несколько суперклассов (например, в Java). Поэтому вы не можете использовать расширения для множественного наследования. Чтобы иметь множественное наследование, вам нужно использовать интерфейсы.

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

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

Похожие посты:

Image
Image
Image
Image

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

Image
Image
Image
Image

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

Image
Image
Image
Image

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

Image
Image
Image
Image

Разница между орудиями и удлинителями

Image
Image
Image
Image

Разница между графом и деревом

В рубрике: Программирование С тегами: ABC, абстрактный, Абстрактные базовые классы, Абстрактный класс, Абстрактные классы, Абстрактное ключевое слово, Абстрактные методы, конкретный класс, Ключевое слово расширяет, Наследование, Класс наследования, унаследованный класс, Java, множественное наследование, объектно-ориентированные концепции, обычный класс, суперкласс

Изображение
Изображение

Об авторе: Indika

Индика, BSc. Eng, MSECE Computer Engineering, PhD. Информатика, является доцентом и занимается исследованиями в области биоинформатики, вычислительной биологии и биомедицинской обработки естественного языка.

Комментарии

  1. Изображение
    Изображение

    Джейсон говорит

    30 августа 2017 г., 13:25

    Спасибо за объяснение разницы. Все мои вопросы были решены этим.

    Ответить

  2. Изображение
    Изображение

    Аус говорит

    10 мая 2019 г., 15:04

    лучший ответ в сети, Учитель ни хрена не объясняет и не имеет смысла, монотон мф. Вот как вы объясняете понятия.

    Ответить

Оставить ответ Отменить ответ

Ваш адрес электронной почты не будет опубликован. Обязательные поля помечены

Комментарий

Имя

Электронная почта

Сайт

Запросить статью
Запросить статью
Запросить статью
Запросить статью

Избранные посты

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

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

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

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

Разница между коронавирусом и гриппом
Разница между коронавирусом и гриппом

Разница между коронавирусом и гриппом

Разница между коронавирусом и Covid 19
Разница между коронавирусом и Covid 19

Разница между коронавирусом и Covid 19

Вам может понравиться

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

Разница между исчислением AB и BC

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