Ereditarietà Python

Capitolo 18 – Ereditarietà Python

In questo capitolo studiamo l’ereditarietà Python, uno dei concetti più importanti della programmazione a oggetti per riutilizzare e specializzare il codice.

Materiale originale a cura di Alfredo Di Fiore – megistone.it

Manuale completo:
vai all’indice del corso


L’ereditarietà permette di creare nuove classi a partire da classi esistenti, evitando duplicazioni e migliorando il riuso del software.

18.1 Obiettivi formativi

  • comprendere classe base e derivata;
  • riutilizzare attributi e metodi;
  • ridefinire metodi con override;
  • usare super();
  • capire il vantaggio del riuso OOP.

18.2 Classe base e classe derivata

Una classe derivata eredita proprietà e comportamenti da una classe base.

class Animale:
    def parla(self):
        print("Suono generico")

class Cane(Animale):
    pass

La classe Cane eredita il metodo parla().


18.3 Uso dell’ereditarietà Python

c = Cane()
c.parla()

Output:

Suono generico

18.4 Override dei metodi

Una classe derivata può ridefinire un metodo della classe base.

class Cane(Animale):
    def parla(self):
        print("Bau")
💡 Applicazione pratica

L’ereditarietà è molto usata in videogiochi, GUI, robotica e simulazioni per modellare gerarchie di oggetti.


18.5 Uso di super()

La funzione super() consente di richiamare metodi della classe padre.

class Animale:
    def __init__(self, nome):
        self.nome = nome

class Cane(Animale):
    def __init__(self, nome, razza):
        super().__init__(nome)
        self.razza = razza

Questo evita duplicazioni nel costruttore.


18.6 Vantaggi dell’ereditarietà

  • riuso del codice;
  • migliore organizzazione;
  • gerarchie logiche;
  • maggiore manutenibilità;
  • riduzione degli errori.
⚠️ Errore comune

Molti studenti dimenticano di richiamare super() nel costruttore della classe derivata.


18.7 Riepilogo sull’ereditarietà

  • una classe derivata estende una classe base;
  • i metodi possono essere ridefiniti;
  • super() richiama il costruttore padre;
  • l’override personalizza il comportamento;
  • la OOP migliora il riuso.

18.8 Domande tipiche d’esame

  1. Che differenza c’è tra classe base e derivata?
  2. Quando si usa super()?
  3. Che cos’è l’override?
  4. Quali vantaggi offre l’ereditarietà?

18.9 Esercizi

  1. Crea una classe Veicolo e una derivata Auto.
  2. Ridefinisci un metodo con override.
  3. Usa super() nel costruttore.

Approfondimento ufficiale:

documentazione Python sull’ereditarietà


L’ereditarietà Python è fondamentale nello sviluppo di framework, videogiochi, software di simulazione e robotica, perché consente di creare gerarchie di classi riutilizzabili e facilmente estendibili nel tempo.

Articoli simili