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

Автор: Laura McKinney
Дата создания: 3 Апрель 2021
Дата обновления: 2 Июль 2024
Anonim
C# — Абстрактный класс vs Интерфейс
Видео: C# — Абстрактный класс vs Интерфейс

Содержание

Главное отличие

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


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

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

Что такое интерфейс?

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


Ключевые отличия

  1. Абстрактный класс является объектно-ориентированным, а интерфейс - функционально-ориентированным.
  2. Когда вы хотите, чтобы API некоторое время оставался постоянным, вы выбираете интерфейс вместо абстрактного класса.
  3. Множественное наследование может быть получено путем использования нескольких интерфейсов. Находясь в абстрактном классе, вы не можете получить множественное наследование.
  4. Если у вас есть предчувствие, что в будущем вам потребуется добавить методы в свою работу, тогда выбирается абстрактный класс, а не интерфейс.
  5. Абстрактный класс дает общее приложение базового класса, но ничего такого не происходит в интерфейсе.
  6. В интерфейсе все методы, которые вы реализуете, являются публичными, но в абстрактном классе вы также можете применять некоторые непубличные методы.
  7. Конструкторов нет в интерфейсе, но они встречаются в абстрактном классе.
  8. Полный член абстрактного класса может быть статическим, но не интерфейсом.

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

Статуя Статуя - это скульптура, представляющая одного или нескольких людей или животных (включая абстрактные понятия, аллегорически представленные в виде людей или животных), отдельно стоящих (в отл...

Набирающие популярность