0Pricing
C# Academy · Lezione

Classi astratte

Esplori le classi astratte e il loro ruolo nella creazione di una struttura condivisa per le classi derivate

Classi astratte è una lezione C# Academy gratuita su CoddyKit. Questa è la lezione 2 di 6. 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 C# Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso C# Academy include 6 lezioni in totale.

Classi astratte

Classi astratte

Benvenuto nella lezione successiva! In questa lezione imparerà a conoscere le classi astratte in C#, il loro scopo e le differenze rispetto alle interfacce. Cominciamo!

Classi astratte — illustrazione 1

Che cos'è una classe astratta

Che cos'è una classe astratta?

Una classe astratta è una classe che non può essere istanziata direttamente. Funge da schema per altre classi e può includere metodi astratti, che devono essere implementati dalle classi derivate.

Punto chiave: Le classi astratte possono includere sia metodi completamente implementati sia metodi dichiarati soltanto (metodi astratti).

Definire una classe astratta

Definire una classe astratta

Per definire una classe astratta, utilizzi la parola chiave abstract. Ecco un esempio:

Suggerimento: Utilizzi le classi astratte per fornire una base comune a classi correlate.

using System;

abstract class Animal {
    public abstract void Speak(); // Abstract method
    public void Sleep() { // Non-abstract method
        Console.WriteLine("The animal is sleeping.");
    }
}

Implementare una classe astratta

Implementare una classe astratta

Le classi derivate devono implementare tutti i metodi astratti della classe astratta. Ecco un esempio:

Punto chiave: I metodi astratti definiscono un comportamento che deve essere implementato dalle classi derivate.

using System;

abstract class Animal {
    public abstract void Speak(); // Abstract method
    public void Sleep() {
        Console.WriteLine("The animal is sleeping.");
    }
}

class Dog : Animal {
    public override void Speak() {
        Console.WriteLine("The dog barks.");
    }
}

class Program {
    static void Main() {
        Dog myDog = new Dog();
        myDog.Speak(); // Outputs: The dog barks.
        myDog.Sleep(); // Outputs: The animal is sleeping.
    }
}

Classi astratte e interfacce a confronto

Classi astratte e interfacce a confronto

Sia le classi astratte sia le interfacce vengono utilizzate per l'astrazione, ma differiscono sotto diversi aspetti:

  • Le classi astratte possono contenere metodi implementati e astratti, mentre le interfacce possono contenere solo metodi astratti (prima di C# 8.0).
  • Le classi astratte possono includere campi, costruttori e modificatori di accesso per i membri.
  • Una classe può ereditare da una sola classe astratta, ma può implementare più interfacce.

Suggerimento: Utilizzi le classi astratte per classi strettamente correlate e le interfacce per un'astrazione più ampia.

Quando utilizzare le classi astratte

Quando utilizzare le classi astratte

Le classi astratte sono più adatte quando:

  • Desidera definire una classe base comune con funzionalità condivise.
  • Ha bisogno di includere metodi non astratti che forniscono un'implementazione predefinita.
  • Lavora con classi correlate che condividono una gerarchia comune.

Esempio: Una classe astratta «Shape» per le classi «Circle» e «Rectangle».

Esercizio pratico

Esercizio pratico

Crei una classe astratta Shape con un metodo astratto CalculateArea(). Implementi questo metodo nelle classi derivate Rectangle e Circle. Ecco un esempio:

using System;

abstract class Shape {
    public abstract double CalculateArea();
}

class Rectangle : Shape {
    public double Width { get; set; }
    public double Height { get; set; }

    public override double CalculateArea() {
        return Width * Height;
    }
}

class Circle : Shape {
    public double Radius { get; set; }

    public override double CalculateArea() {
        return Math.PI * Radius * Radius;
    }
}

class Program {
    static void Main() {
        Shape rectangle = new Rectangle { Width = 5, Height = 4 };
        Shape circle = new Circle { Radius = 3 };

        Console.WriteLine("Rectangle Area: " + rectangle.CalculateArea());
        Console.WriteLine("Circle Area: " + circle.CalculateArea());
    }
}

Buone pratiche per le classi astratte

Buone pratiche per le classi astratte

Ecco alcune buone pratiche:

  • Utilizzi le classi astratte quando dispone di funzionalità condivise che devono essere ereditate.
  • Mantenga la classe astratta focalizzata ed eviti di aggiungere membri non necessari.
  • Combini le classi astratte con le interfacce quando appropriato.

Suggerimento: Le classi astratte dovrebbero fornire una base solida per le classi derivate.

Ottimo lavoro!

Ottimo lavoro!

Congratulazioni! Ha imparato a utilizzare le classi astratte per definire comportamenti condivisi e garantire coerenza tra le classi derivate. Nella prossima lezione esploreremo i membri e i metodi statici in C#. Continui a scrivere codice!

Classi astratte — illustrazione 10

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 C# Academy, passa a CoddyKit PRO. Il corso C# Academy include 6 lezioni in totale.

Cosa imparerò in «Classi astratte»?

Esplori le classi astratte e il loro ruolo nella creazione di una struttura condivisa per le classi derivate Eserciti C# 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 C# Academy?

Non è richiesta alcuna esperienza precedente. C# 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 6.

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 C# Academy?

Sì. Ogni lezione C# 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. Introduzione alle interfacce
  2. Classi astratte
  3. Membri e metodi statici
  4. Esplorare enum e struct
  5. Delegati ed eventi
  6. Lavorare con le raccolte: liste, dizionari e code
← Torna a C# Academy