Sobes.tech
Intern

Cos'è l'ereditarietà in programmazione e a cosa serve?

sobes.tech AI

Risposta dell'AI

L'ereditarietà è un meccanismo della programmazione orientata agli oggetti (OOP) che consente a una classe (classe figlia, derivata) di ereditare proprietà (attributi) e comportamenti (metodi) da un'altra classe (classe genitore, base).

Utilizzato per:

  • Riutilizzo del codice: I metodi e gli attributi della classe base sono disponibili nella classe derivata, evitando duplicazioni di codice.
  • Creazione di gerarchie di classi: Permette di modellare relazioni "è un" (is-a) tra oggetti. Ad esempio, Cane è Animale.
  • Estensione delle funzionalità: La classe derivata può aggiungere propri attributi e metodi o ridefinire (modificare) il comportamento ereditato.
  • Polimorfismo: In combinazione con la dispatch dinamica, l'ereditarietà permette di trattare oggetti di diversi tipi, riferendosi alla loro classe base.

Esempio in Python:

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

    def fai_suono(self):
        pass # Metodo vuoto, sarà ridefinito nelle classi derivate

class Cane(Animale):
    # Classe derivata
    def __init__(self, nome, razza):
        super().__init__(nome) # Chiamata al costruttore della classe base
        self.razza = razza

    def fai_suono(self):
        # Ridefinizione del metodo fai_suono
        print("Woof!")

# Uso
il_mio_cane = Cane("Бобик", "Ove")
print(il_mio_cane.nome) # Attributo ereditato
il_mio_cane.fai_suono() # Metodo ridefinito