Contenuti del Corso
Java OOP
Java OOP
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:
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
package 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!