Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Kantaluokat ja aliluokat | Osio
Olio-ohjelmointi Pythonissa

bookKantaluokat 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.

123456789101112131415161718192021222324252627282930
class 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())
copy

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:

  • Manager lisää department
  • Developer lisää 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.

Note
Huomio

Tämä tekee kantaluokasta perustan ja aliluokasta erikoistuneen toteutuksen, joka lisää joustavuutta.

question mark

Mikä on aliluokan rooli Pythonin periytymisessä?

Valitse oikea vastaus

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 9

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Osio 1. Luku 9
some-alt