0Pricing
Java Academy · Lezione

Classi astratte

Dichiarare classi e metodi astratti, comprendere perché non possono essere istanziati e vedere come le sottoclassi completano il progetto.

Classi astratte è una lezione Java Academy gratuita su CoddyKit. Questa è la lezione 1 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'è una classe astratta?

Classe astratta: definisce un'idea comune e può lasciare alcuni metodi privi di corpo. Può anche includere metodi normali con del codice. Pensatela come un modello che richiede alle sottoclassi di completare le parti mancanti.

Codice: impossibile creare un'istanza

Non è possibile istanziare direttamente le classi astratte. Possono comunque contenere metodi normali che tutte le sottoclassi ereditano.

public class Main {
  // Abstract class with one abstract method and one concrete method
  static abstract class Animal {
    abstract void speak();              // must be implemented by subclasses
    void info() {                       // concrete method allowed
      System.out.println("I am an animal.");
    }
  }

  public static void main(String[] args) {
    // Animal a = new Animal(); // Uncommenting would not compile: cannot instantiate abstract class
    System.out.println("You cannot create an Animal directly if it is abstract.");
  }
}

Perché usare le classi astratte?

Raccolgono il codice condiviso in un unico punto e impongono a ogni sottoclasse di fornire i metodi importanti. Usatele quando alcuni comportamenti sono comuni, mentre altri variano tra i tipi concreti.

Codice: implementare un metodo astratto

Le sottoclassi devono implementare i metodi astratti. I metodi concreti della classe astratta vengono ereditati e possono essere riutilizzati.

public class Main {
  static abstract class Animal {
    abstract void speak();
    void info() {
      System.out.println("I am an animal.");
    }
  }

  static class Dog extends Animal {
    // Must implement speak()
    void speak() {
      System.out.println("Woof!");
    }
  }

  public static void main(String[] args) {
    Dog d = new Dog();      // allowed: Dog is concrete
    d.info();               // inherited concrete method
    d.speak();              // Dog's implementation
  }
}

Regole e combinazioni

Regole: una classe astratta può avere campi, costruttori e metodi concreti. Una sottoclasse diventa concreta solo dopo aver implementato tutti i metodi astratti; altrimenti è anch'essa astratta.

Codice: astrattezza e polimorfismo

Le classi astratte funzionano bene con il polimorfismo. Il codice può usare il tipo astratto, mentre ogni sottoclasse fornisce il comportamento corretto.

public class Main {
  static abstract class Animal {
    abstract void speak();
  }

  static class Dog extends Animal {
    void speak() { System.out.println("Woof!"); }
  }

  static class Cat extends Animal {
    void speak() { System.out.println("Meow!"); }
  }

  public static void main(String[] args) {
    // Polymorphism through abstract base type
    Animal[] pets = { new Dog(), new Cat() };
    for (int i = 0; i < pets.length; i = i + 1) {
      pets[i].speak(); // each subclass provides its own behavior
    }
  }
}

Verifica sulle classi astratte

Verifica rapida: quale affermazione sulle classi astratte è corretta?

Riepilogo

Riepilogo: usate le classi astratte per condividere il codice e richiedere i metodi fondamentali. Non è possibile istanziarle direttamente, ma le sottoclassi completano il comportamento.

Domande Frequenti

La lezione «Classi astratte» è gratuita?

Sì — il testo completo di «Classi astratte» è 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 «Classi astratte»?

Dichiarare classi e metodi astratti, comprendere perché non possono essere istanziati e vedere come le sottoclassi completano il progetto. 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 1 di 3.

Quanto tempo richiede la lezione «Classi astratte»?

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