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

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

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 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:

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

Note
Huomio

Tämä tekee pohjaluokasta 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 2. Luku 2

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

Osio 2. Luku 2
some-alt