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

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

Съдържание

Основна разлика

Основната разлика между абстрактния клас и интерфейса е, че процедурите на Java интерфейса са по същество абстрактни и не могат да имат приложения. Толкова общо казано, интерфейсът всъщност е договор и когато говорим за интерфейс, се прилага, че методите нямат тяло, това е просто модел. Докато абстрактните класове са основно класовете, които са скъпи за използване. Абстрактните класове и интерфейс е съвсем различна концепция, това са две различни неща, но понякога техните реализации са доста сходни.


Какво е абстрактен клас?

Абстрактен клас не се подразбира напълно от програмиста. Абстрактният клас може да има един или повече абстрактни методи. Те са полезни за моделиране на класово групиране или класиране и докато това се извършва, програмистът добива представа какво трябва да се изгради, след като види изискванията. Абстрактният клас не може да се разчита напълно, тъй като му липсват някои части. Основният момент зад този аргумент е, че абстрактният клас е строго обектно ориентиран, въпреки че има заглавие на метода, но няма тяло. Когато говорим за абстрактни класове, има силна връзка между два класа, защото тези класове са склонни да печелят или наследяват един от друг.

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

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


Ключови разлики

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

В биологията и екологията Абиотик се отнася до всички неживи фактори, присъстващи в екосистемата. Можем да кажем, че всички неживи компоненти, съставляващи екосистема, са абиотичните компоненти или фа...

Основната разлика между Cornet и Cone е, че Корнет е музикален инструмент и Конусът е геометрична форма. корнет Корнетът (, САЩ:) е месингов инструмент, подобен на тромпета, но се отличава от него с...

Интересен Днес