Ereditarietà di base
Fa parte della sezione Programmazione orientata agli oggetti del percorso Python di Coddy. Lezione 17 di 64.
L’ereditarietà consente a una classe di ereditare attributi e metodi da un’altra classe, creando una relazione genitore-figlio.
Ecco un esempio di classe genitore:
class Animal:
def __init__(self, name):
self.name = name
def info(self):
print(f"I am {self.name}, an animal")Crea una classe figlia che eredita dalla classe genitore:
class Dog(Animal):
pass # Eredita tutto da AnimalLa sintassi class Dog(Animal): significa che Dog eredita da Animal. Inserisci il nome della classe genitore tra parentesi.
Crea oggetti da entrambe le classi:
generic_animal = Animal("Creature")
buddy = Dog("Buddy")Usa i metodi ereditati:
generic_animal.info()
buddy.info()Output:
I am Creature, an animal
I am Buddy, an animalAnche se Dog non definisce __init__ o info, li eredita automaticamente da Animal.
Puoi aggiungere nuovi metodi alla classe figlia:
class Dog(Animal):
def bark(self):
print(f"{self.name} says Woof!")
buddy = Dog("Buddy")
buddy.info() # Metodo ereditato
buddy.bark() # Nuovo metodoOutput:
I am Buddy, an animal
Buddy says Woof!Punto chiave: le classi figlie ereditano tutti gli attributi e i metodi dalla loro classe genitore. Usa la sintassi class Child(Parent): per creare l’ereditarietà. Questo ti aiuta a riutilizzare il codice e a creare gerarchie di classi logiche.
Sfida
Mediovehicle.py: contiene la classe genitoreVehiclecar.py: contiene la classeCarche eredita daVehicledriver.py: file principale per testare la tua implementazione
Ogni file contiene commenti TODO dettagliati che ti guidano nell'implementazione. Dovrai:
- Completare la classe
Vehiclecon gli attributi make e model - Implementare la corretta ereditarietà nella classe
Car - Impostare le istruzioni di importazione corrette tra i file
- Creare e testare gli oggetti nel file driver
Segui attentamente i commenti TODO, perché forniscono una guida passo dopo passo alla soluzione.
Provalo tu
# TODO: Importa la classe Vehicle da vehicle.py
# TODO: Importa la classe Car da car.py
# TODO: Crea un oggetto Vehicle con make "Toyota" e model "Corolla"
vehicle = None
# TODO: Crea un oggetto Car con make "Honda" e model "Civic"
car = None
# TODO: Chiama il metodo display_info() sull'oggetto vehicle
# Output previsto: "Vehicle: Toyota Corolla"
# TODO: Chiama il metodo display_info() sull'oggetto car
# Output previsto: "Vehicle: Honda Civic"
# Nota: Car eredita display_info da Vehicle senza modificheQuesta lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Programmazione orientata agli oggetti
1Fondamenti di OOP
File esterniIntroduzione a OOPClassi vs. oggettiIl parametro selfMetodiAttributiMetodo costruttore (__init__)Riepilogo - Calcolatrice semplice4Ereditarietà
Ereditarietà di baseLa funzione super()Sovrascrittura dei metodiEreditarietà multiplaOrdine di risoluzione dei metodiRiepilogo - Gerarchia dei dipendenti7Metodi speciali
Introduzione ai metodi magiciSovraccarico degli operatoriMetodi magici dei contenitoriRiepilogo - Lista personalizzata10Modelli di progettazione Parte 1
Introduzione ai modelli di progettazioneModello SingletonModello FactoryModello ObserverModello Strategy2Decoratori
Introduzione ai decoratoriDecoratore di proprietàDecoratore di metodo staticoDecoratore di metodo di classe5Polimorfismo
Ripasso dell'override dei metodiDuck typingClassi e metodi astrattiProgettazione delle interfacceRiepilogo - Calcolatore di forme8Concetti avanzati di OOP
Composizione vs ereditarietàMixinMetodi statici e di classeDecorator di classeContext manager11Pattern di progettazione - Parte 2
Pattern dei comandiPattern adattatorePattern decoratorePattern metodo templatePattern statoPattern composito3Proprietà delle classi
Variabili di istanza e di classeDecorator delle proprietàAttributi privatiRiepilogo - Gestore di conti bancari6Incapsulamento
Membri pubblici, protetti e privatiModificatori di accessoOccultamento delle informazioniDecorator delle proprietà: avanzatiRipasso - Sistema di registri degli studenti12Progetto: Gestione della biblioteca
Panoramica del progettoClassi Libro e UtenteSistema di prestitoFunzionalità di ricercaInterfaccia amministratoreTest e integrazioneEsercitati da solo: Compilatore Python online