Имплементира срещу разширяване
Implements и Extends са две ключови думи, открити в езика за програмиране Java, които предоставят средства за прехвърляне на добавена функционалност към нов клас. Ключовата дума Implements се използва изрично за внедряване на интерфейс, докато ключовата дума Extends се използва за наследяване от (супер) клас. Моля, обърнете внимание, че концепциите за наследяване и интерфейси присъстват в повечето други обектно-ориентирани езици за програмиране като C и VB. NET, но те предлагат различен синтаксис или ключови думи за прилагане на тези концепции. Тази статия се фокусира само върху внедрява и разширява ключови думи, дефинирани в Java.
Разширява
Ключовата дума Extends се използва за прилагане на концепцията за наследяване в езика за програмиране Java. Наследяването по същество осигурява повторно използване на кода, като позволява разширяване на свойствата и поведението на съществуващ клас от новодефиниран клас. Когато нов подклас (или производен клас) разшири супер клас (или родителски клас), този подклас ще наследи всички атрибути и методи на супер класа. Подкласът може по желание да замени поведението (предоставяне на нова или разширена функционалност на методите), наследено от родителския клас. Един подклас не може да разшири множество супер класове в Java. Следователно не можете да използвате extends за множествено наследяване. За да имате множествено наследяване, трябва да използвате интерфейси, както е обяснено по-долу.
Приложения
Ключовата дума Implements в езика за програмиране Java се използва за имплементиране на интерфейс от клас. Интерфейсът в Java е абстрактен тип, който се използва за указване на договор, който трябва да бъде имплементиран от класове, които имплементират този интерфейс. Обикновено интерфейсът ще съдържа само сигнатури на методи и константни декларации. Всеки интерфейс, който имплементира определен интерфейс, трябва да имплементира всички методи, дефинирани в интерфейса, или трябва да бъде деклариран като абстрактен клас. В Java типът препратка към обект може да се дефинира като тип интерфейс. Но този обект трябва или да е нулев, или да съдържа обект от клас, който имплементира този конкретен интерфейс. Използвайки ключовата дума Implements в Java, можете да внедрите множество интерфейси към един клас. Един интерфейс не може да реализира друг интерфейс. Интерфейсът обаче може да разшири клас.
Разлика между внедрява и разширява
Въпреки че Implements и Extends са две ключови думи, които осигуряват механизъм за наследяване на атрибути и поведение на клас в езика за програмиране Java, те се използват за две различни цели. Ключовата дума Implements се използва за клас за внедряване на определен интерфейс, докато ключовата дума Extends се използва за подклас за разширяване от супер клас. Когато клас имплементира интерфейс, този клас трябва да имплементира всички методи, дефинирани в интерфейса, но когато подклас разширява суперклас, той може или не може да замени методите, включени в родителския клас. И накрая, друга ключова разлика между Implements и Extends е, че един клас може да реализира множество интерфейси, но може да се разширява само от един супер клас в Java. Като цяло използването на Implements (интерфейси) се счита за по-благоприятно в сравнение с използването на Extends (наследяване), поради няколко причини като по-висока гъвкавост и възможност за минимизиране на свързването. Следователно на практика програмирането към интерфейс е за предпочитане пред разширяване от базови класове.