0Pricing
Java Academy · Lezione

Interfacce (introduzione e confronti)

Definire interfacce, implementarle nelle classi e confrontarle con le classi astratte. Imparare i metodi default e l’implementazione multipla.

Interfacce (introduzione e confronti) è una lezione Java Academy gratuita su CoddyKit. Questa è la lezione 2 di 3. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Java Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Java Academy include 3 lezioni in totale.

Che cos'è un'interfaccia?

Interfaccia: un contratto che elenca le firme dei metodi che una classe deve fornire. Usatela per descrivere una capacità, come Drivable o Printable, senza imporre una gerarchia di classi.

Codice: implementare un'interfaccia

Le classi implementano le interfacce per garantire determinati comportamenti. È possibile usare il riferimento all'oggetto tramite il tipo dell'interfaccia e chiamare i metodi dichiarati.

public class Main {
  // Interface that declares a capability
  static interface Drivable {
    void drive(); // method to implement
  }

  // A class implements the interface
  static class Car implements Drivable {
    public void drive() {
      System.out.println("Car is driving");
    }
  }

  public static void main(String[] args) {
    Drivable d = new Car(); // upcast to interface
    d.drive();              // runs Car's method
  }
}

Interfacce e classi astratte

Classe astratta = relazione is-a con codice condiviso. Interfaccia = capacità can-do. Una classe può estendere una sola classe, ma implementare molte interfacce: i progetti restano così flessibili e si evitano gerarchie troppo profonde.

Codice: metodo default

Le interfacce possono avere metodi default con del codice. Le classi che implementano l'interfaccia ereditano automaticamente questo piccolo comportamento.

public class Main {
  // Interface with a default method (has a body)
  static interface Greeter {
    void greet(String name);
    default void sayBye() { // default provides a reusable tiny implementation
      System.out.println("Bye");
    }
  }

  static class SimpleGreeter implements Greeter {
    public void greet(String name) {
      System.out.println("Hello, " + name);
    }
  }

  public static void main(String[] args) {
    Greeter g = new SimpleGreeter();
    g.greet("Ada");
    g.sayBye(); // default method from the interface
  }
}

Più interfacce

Una classe può implementare contemporaneamente diverse interfacce, ad esempio Drivable e Maintainable. In questo modo si modellano le capacità senza imporre una catena fissa di superclassi.

Codice: più interfacce

Una classe implementa entrambe le interfacce. A seconda del contesto, è possibile trattarla come Drivable, Maintainable o come il suo tipo concreto.

public class Main {
  static interface Drivable { void drive(); }
  static interface Maintainable { void maintain(); }

  static class ServiceCar implements Drivable, Maintainable {
    public void drive() { System.out.println("ServiceCar driving"); }
    public void maintain() { System.out.println("ServiceCar maintenance"); }
  }

  public static void main(String[] args) {
    ServiceCar s = new ServiceCar();
    s.drive();
    s.maintain();
  }
}

Verifica sulle interfacce

Verifica rapida: quale affermazione sulle interfacce in Java è corretta?

Riepilogo

Riepilogo: le interfacce definiscono contratti di comportamento, che le classi implementano. Usate i metodi default per piccole porzioni di codice condiviso e combinate più capacità nella stessa classe quando necessario.

Domande Frequenti

La lezione «Interfacce (introduzione e confronti)» è gratuita?

Sì — il testo completo di «Interfacce (introduzione e confronti)» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Java Academy, passa a CoddyKit PRO. Il corso Java Academy include 3 lezioni in totale.

Cosa imparerò in «Interfacce (introduzione e confronti)»?

Definire interfacce, implementarle nelle classi e confrontarle con le classi astratte. Imparare i metodi default e l’implementazione multipla. Eserciti Java Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Java Academy?

Non è richiesta alcuna esperienza precedente. Java Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 3.

Quanto tempo richiede la lezione «Interfacce (introduzione e confronti)»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Java Academy?

Sì. Ogni lezione Java Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Classi astratte
  2. Interfacce (introduzione e confronti)
  3. Upcasting/downcasting e instanceof
← Torna a Java Academy