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