Интерфейси и абстрактни класове в Java

Съдържание
Въпреки че и двете структури могат да изглеждат сходни, тъй като принуждават класовете, които ги използват, да създават методите, които имат и да ги използват, за да бъдат валидни, те имат ключови разлики помежду си, което може да ни даде повече светлина за това как можем да ги използваме .
Разликите, въпреки че са фини, ни позволяват да използваме и двете структури дори в комбинация, по този начин можем да постигнем по -голям ред в нашия проект и да създадем приложения, които ни позволяват да възпроизвеждаме по -добре обектите от реалния свят в цифров формат.
ОграниченияОсновната разлика, която виждаме между абстрактни класове и интерфейси е, че първият е клас, а вторият не е, въпреки че интерфейс има подобна структура, изправена пред ограничения, които не се срещат в a абстрактен клас.
ПроменливиThe абстрактен клас няма ограничения за използването на променливи, но интерфейс ако има, всъщност всички променливи, които ще използваме, трябва да бъдат публично, статично или окончателно.
В този случай, строител от абстрактен клас трябва да бъде извикан чрез подкласове, което оставя възможността за неговото създаване чрез оператора нов.
В случай че интерфейс, това не може да има конструктори, тъй като не е клас, което ни кара да отхвърлим и създаването на екземпляри с оператора нов.
МетодиВ интерфейс методите трябва да бъдат публичен резюме От друга страна, в абстрактния клас можем да поставим всеки тип метод без проблеми, което прави още една разлика за нас.
Друг момент, който трябва да вземем предвид, е начинът на наследяване и внедряване, който можем да постигнем с тези две структури в Java, ние знаем, че когато го направим наследство В един клас можем да наследяваме само директно от висш клас, тоест, ако искаме да наследим от два различни класа, трябва да създадем като каскаден ефект, при който първи клас наследява от по -високия клас, а след това друг клас наследява от това, за да получи своята функционалност и тази на своя родителски клас.
В интерфейси Този проблем не възниква, всъщност можем да наследим директно от няколко интерфейса, така че ако искаме да получим техните методи, можем да го направим без проблем.

В случай че внедряване на интерфейс в абстрактен клас, ако имаме повече свобода, в този случай можем да реализираме множество интерфейси без никакви ограничения в този случай, което ни дава възможност да направим по -сложен родителски интерфейс, така да се каже. Важното тук е да знаете и вземете предвид, че интерфейсът не е клас и следователно не може да наследи от един, той може само да наследяване от други интерфейси.

С това приключваме този урок, видяхме разликите в ограниченията и прилагането в нашите програми на тези две структури в JavaВъпреки че и двете служат за моделиране и дефиниране на поведение, всяко от тях има свое собствено пространство, така че когато ги познаваме по -добре, ще можем да решим кое да използваме в нашите програми, създадени с този език.Хареса ли ви и помогнахте на този урок?Можете да възнаградите автора, като натиснете този бутон, за да му дадете положителна точка

Така ще помогнете за развитието на сайта, сподели с приятелите си

wave wave wave wave wave