Kantaluokat ja aliluokat
Pyyhkäise näyttääksesi valikon
Perinnön toteutus Pythonissa tapahtuu pohjaluokkien (vanhemmat) ja aliluokkien (lapset) avulla.
Pohjaluokka määrittelee yleiset ominaisuudet ja toiminnot, kun taas aliluokka perii nämä piirteet ja voi laajentaa niitä omilla.
123456789101112131415161718192021222324252627282930class Employee: def __init__(self, name, salary): self.name = name self.salary = salary def get_info(self): return f"{self.name}, {self.salary}" class Manager(Employee): def __init__(self, name, salary, department): super().__init__(name, salary) self.department = department def get_info(self): return f"{super().get_info()}, {self.department}" class Developer(Employee): def __init__(self, name, salary, language): super().__init__(name, salary) self.language = language def get_info(self): return f"{super().get_info()}, {self.language}" print(Employee("Anna", 2000).get_info()) print(Manager("Mark", 3500, "IT").get_info()) print(Developer("Lena", 3000, "Python").get_info())
Employee on kantaluokka. Se tallentaa tiedot, jotka ovat yhteisiä kaikille työntekijöille. Manager ja Developer ovat Employee-luokan aliluokkia. Ne perivät automaattisesti kaiken kantaluokasta, joten samaa koodia ei tarvitse kirjoittaa uudelleen.
Kutsu super() suorittaa kantaluokan konstruktorin, jolloin name ja salary asetetaan oikein. Jokainen aliluokka lisää sitten omat tietonsa:
ManagerlisäädepartmentDeveloperlisäälanguage
Molemmat aliluokat myös ylikirjoittavat get_info()-metodin. Ne hyödyntävät kantaluokan versiota kutsumalla super().get_info() ja laajentavat tulosta omilla tiedoillaan.
Tämä tekee kantaluokasta perustan ja aliluokasta erikoistuneen toteutuksen, joka lisää joustavuutta.
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme