Методи за замовчуванням
Абстрактний клас vs Інтерфейс: Інтерфейс завдає удару у відповідь!
Раніше методи з реалізацією могли існувати лише в абстрактних класах, але починаючи з Java 8, вони з'явилися й в інтерфейсах.
Розглянемо синтаксис оголошення default-методу:
default dataType methodName(parameters) {
// implementation
}
Default-методи потрібні для тих самих цілей, що й звичайні методи в Java. Їх використовують, коли потрібна реалізація в методі та коли потрібно реалізувати лише інтерфейс без додаткових класів. Розглянемо невеликий приклад із використанням default-методів:
Main.java
12345678910111213141516171819202122232425package com.example; public class Main { public interface Greeting { default void sayHello() { System.out.println("Hello from the interface!"); } void greet(String name); } public static class GreetingImpl implements Greeting { @Override public void greet(String name) { System.out.println("Hello, " + name + "!"); } } public static void main(String[] args) { GreetingImpl greetingImpl = new GreetingImpl(); greetingImpl.sayHello(); // Output: Hello from the interface! greetingImpl.greet("Alice"); // Output: Hello, Alice! } }
У цьому прикладі інтерфейс Greeting
містить типовий метод sayHello()
із типовою реалізацією. Клас GreetingImpl
реалізує цей інтерфейс і перевизначає метод greet()
. У методі main створюється екземпляр GreetingImpl
і викликаються обидва методи.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 4.76
Методи за замовчуванням
Свайпніть щоб показати меню
Абстрактний клас vs Інтерфейс: Інтерфейс завдає удару у відповідь!
Раніше методи з реалізацією могли існувати лише в абстрактних класах, але починаючи з Java 8, вони з'явилися й в інтерфейсах.
Розглянемо синтаксис оголошення default-методу:
default dataType methodName(parameters) {
// implementation
}
Default-методи потрібні для тих самих цілей, що й звичайні методи в Java. Їх використовують, коли потрібна реалізація в методі та коли потрібно реалізувати лише інтерфейс без додаткових класів. Розглянемо невеликий приклад із використанням default-методів:
Main.java
12345678910111213141516171819202122232425package com.example; public class Main { public interface Greeting { default void sayHello() { System.out.println("Hello from the interface!"); } void greet(String name); } public static class GreetingImpl implements Greeting { @Override public void greet(String name) { System.out.println("Hello, " + name + "!"); } } public static void main(String[] args) { GreetingImpl greetingImpl = new GreetingImpl(); greetingImpl.sayHello(); // Output: Hello from the interface! greetingImpl.greet("Alice"); // Output: Hello, Alice! } }
У цьому прикладі інтерфейс Greeting
містить типовий метод sayHello()
із типовою реалізацією. Клас GreetingImpl
реалізує цей інтерфейс і перевизначає метод greet()
. У методі main створюється екземпляр GreetingImpl
і викликаються обидва методи.
Дякуємо за ваш відгук!