Metodi Predefiniti
Classe astratta vs Interfaccia: Il ritorno dell'Interfaccia!
In precedenza, i metodi con implementazioni potevano esistere solo nelle classi astratte, ma a partire da Java 8, sono comparsi anche nelle interfacce.
Vediamo la sintassi per dichiarare un metodo di default:
default dataType methodName(parameters) {
// implementation
}
Abbiamo bisogno dei metodi di default per gli stessi scopi dei metodi regolari in Java. Li utilizziamo quando è necessaria un'implementazione nel metodo e quando si desidera implementare solo l'interfaccia senza classi aggiuntive. Consideriamo un piccolo esempio utilizzando i metodi di 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! } }
In questo esempio, l'interfaccia Greeting
contiene un metodo predefinito sayHello()
con un'implementazione di default. La classe GreetingImpl
implementa questa interfaccia e sovrascrive il metodo greet()
. Nel metodo main, viene creata un'istanza di GreetingImpl
e vengono chiamati entrambi i metodi.
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
Mi faccia domande su questo argomento
Riassuma questo capitolo
Mostri esempi dal mondo reale
Awesome!
Completion rate improved to 4.76
Metodi Predefiniti
Scorri per mostrare il menu
Classe astratta vs Interfaccia: Il ritorno dell'Interfaccia!
In precedenza, i metodi con implementazioni potevano esistere solo nelle classi astratte, ma a partire da Java 8, sono comparsi anche nelle interfacce.
Vediamo la sintassi per dichiarare un metodo di default:
default dataType methodName(parameters) {
// implementation
}
Abbiamo bisogno dei metodi di default per gli stessi scopi dei metodi regolari in Java. Li utilizziamo quando è necessaria un'implementazione nel metodo e quando si desidera implementare solo l'interfaccia senza classi aggiuntive. Consideriamo un piccolo esempio utilizzando i metodi di 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! } }
In questo esempio, l'interfaccia Greeting
contiene un metodo predefinito sayHello()
con un'implementazione di default. La classe GreetingImpl
implementa questa interfaccia e sovrascrive il metodo greet()
. Nel metodo main, viene creata un'istanza di GreetingImpl
e vengono chiamati entrambi i metodi.
Grazie per i tuoi commenti!