Kantaluokat ja aliluokat
Pyyhkäise näyttääksesi valikon
Perinnän toteutus Pythonissa tapahtuu kantaluokkien (vanhemmat) ja aliluokkien (lapset) avulla.
Kantaluokka määrittelee yleiset ominaisuudet ja toiminnot, kun taas aliluokka perii nämä piirteet ja voi laajentaa niitä omilla ominaisuuksillaan.
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 pohjaluokka. Se tallentaa tiedot, jotka ovat yhteisiä kaikille työntekijöille. Manager ja Developer ovat Employee-luokan aliluokkia. Ne perivät automaattisesti kaiken pohjaluokasta, joten samaa koodia ei tarvitse kirjoittaa uudelleen.
super()-kutsu suorittaa pohjaluokan konstruktorin, joten name ja salary asetetaan oikein. Jokainen aliluokka lisää omat tietonsa:
ManagerlisäädepartmentDeveloperlisäälanguage
Molemmat aliluokat myös ylikirjoittavat get_info()-metodin. Ne hyödyntävät pohjaluokan versiota kutsumalla super().get_info() ja laajentavat tulosta omilla tiedoillaan.
Tämä tekee pohjaluokasta 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