Інтерфейс проти абстрактного класу проти класу бетону від Екаристики середовища проекту Aakash Mallik

Починаючи з java як вашої основної мови, єдине, що вам слід пам’ятати, це розуміти кожну рідну функцію, яку ця мова може запропонувати. Оскільки Java - це все, що стосується класів, у нього є кілька чітких шаблонів дизайну, яких розробники повинні дотримуватися. Ваш обов'язок відповідального програміста - досить часто ставити під сумнів ці шаблони дизайну; зрештою, інженери, які побудували java, планували спроектувати її такою, якою вона є зараз. Тож, не витрачаючи багато часу на плітки, давайте зануримось….

проти

Ява, будучи об'єктно-орієнтованою мовою, дає вам блаженство писати свій код у формі класів багаторазового використання. Тепер як слово багаторазове був використаний, він існує з певної причини. Повторне використання коду не починається зі створення об’єктів з класів, воно починається ще до цього; поки ви самі створюєте класи.

Отже, ми маємо клас Interface, Abstract і Concrete.

PS: Інтерфейс - це не клас.

Інтерфейс - це проект вашого класу, який можна використовувати для реалізації класу (абстрактного чи ні); справа в тому, що інтерфейс не може мати конкретних методів. Конкретні методи - це ті методи, у яких є певний код; одним словом - реалізовано. Інтерфейс може мати статичні члени та підписи методів. Наведений нижче приклад допоможе вам зрозуміти, як написати інтерфейс.

Декларація схожа на клас, але всередині інтерфейсу є кілька суворих правил, яких потрібно дотримуватися:

  • Усі методи, які ви заявляєте в інтерфейсі, можуть мати модифікатори «статичний», «за замовчуванням» або «абстрактний» (починаючи з Java 8). Неявно вони є "публічним рефератом".
  • З Java 8 методи можуть бути реалізовані (можуть мати тіло коду) в інтерфейсі, лише якщо він оголошений статичним або за замовчуванням. Абстрактні методи не можуть мати тіла; все, що вони можуть мати, - це підпис методу, як показано в прикладі вище.
  • Змінні в інтерфейсі заборонені. Отже, будь-яка декларація даних є «загальнодоступним статичним фіналом»; звідси лише константи.
  • Інтерфейси можуть розширюватися інші інтерфейси (один або кілька), але не класи (абстрактні чи ні).
  • Інтерфейси не можуть бути створені, оскільки вони не є конкретними класами.
  • Методи та константи не можна оголосити "приватними", методи не можна оголосити "остаточними".