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