Програми проти розширень
Реалізація та розширення - це два ключові слова, знайдені в мові програмування Java, що забезпечує спосіб перенесення додаткової функціональності до нового класу. Ключове слово Implements використовується явно для реалізації інтерфейсу, тоді як ключове слово Extends використовується для успадкування від (супер) класу. Зверніть увагу, що поняття успадкування та інтерфейси є у більшості інших об'єктно-орієнтованих мов програмування, таких як C # та VB.NET, але вони пропонують різні синтаксиси чи ключові слова для застосування цих понять. Ця стаття зосереджена лише на впровадженні та розширенні ключових слів, визначених на Java.
Подовжує
Ключове слово Extends використовується для реалізації концепції успадкування в мові програмування Java. Спадкування по суті забезпечує повторне використання коду, дозволяючи розширювати властивості та поведінку існуючого класу заново визначеним класом. Коли новий підклас (або похідний клас) розширює суперклас (або батьківський клас), цей підклас успадкує всі атрибути та методи суперкласу. Підклас може необов'язково змінювати поведінку (надавати нову або розширену функціональність методам), успадковану від батьківського класу. Підклас не може поширювати декілька суперкласів на Java. Тому ви не можете використовувати розширення для багаторазового успадкування. Для того, щоб мати декілька успадкованих, потрібно використовувати інтерфейси, як пояснено нижче.
Здійснення
Ключове слово реалізації в мові програмування Java використовується для реалізації інтерфейсу класом. Інтерфейс на Java - це абстрактний тип, який використовується для визначення договору, який повинен бути реалізований класами, які реалізують цей інтерфейс. Зазвичай інтерфейс містить лише підписи методів та постійні декларації. Будь-який інтерфейс, який реалізує певний інтерфейс, повинен реалізовувати всі методи, визначені в інтерфейсі, або бути оголошеним абстрактним класом. У Java тип посилання на об'єкт може бути визначений як тип інтерфейсу. Але цей об'єкт повинен бути або нульовим, або повинен містити об’єкт класу, який реалізує саме цей інтерфейс. Використовуючи ключове слово Implements на Java, ви можете реалізувати декілька інтерфейсів до одного класу. Інтерфейс не може реалізувати інший інтерфейс. Однак інтерфейс може розширити клас.
Різниця між реалізаціями та розширеннями
Хоча Implements and Extends - це два ключові слова, які забезпечують механізм успадкування атрибутів та поведінки класу в мові програмування Java, вони використовуються для двох різних цілей. Ключове слово Implements використовується для класу для реалізації певного інтерфейсу, тоді як ключове слово Extends використовується для підкласу, який поширюється з суперкласу. Коли клас реалізує інтерфейс, йому потрібно реалізувати всі методи, визначені в інтерфейсі, але коли підклас розширює суперклас, він може або не може заміняти методи, включені в батьківський клас. Нарешті, ще одна ключова відмінність між Implements та Extends полягає в тому, що клас може реалізовувати кілька інтерфейсів, але він може поширюватися лише на один суперклас на Java. Взагалі, використання Інструментів (інтерфейсів) вважається більш сприятливим порівняно з використанням Extends (успадкування) з кількох причин, таких як підвищена гнучкість та можливість мінімізації зв'язку. Тому на практиці програмування до інтерфейсу є кращим, ніж поширення від базових класів.