Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Basklasser och Underklasser | Arv
Objektorienterad Programmering i Python

bookBasklasser och Underklasser

Svep för att visa menyn

Implementering av arv i Python görs genom basklasser (föräldrar) och subklasser (barn).

En basklass definierar allmänna egenskaper och beteenden, medan en subklass ärver dessa funktioner och kan utöka dem med egna.

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 är basklassen. Den lagrar data som alla anställda delar. Manager och Developer är subklasser av Employee. De får automatiskt allt från basklassen, så de behöver inte skriva om samma kod.

Anropet till super() kör basklassens konstruktor, så att name och salary sätts korrekt. Varje subklass lägger sedan till sin egen data:

  • Manager lägger till department
  • Developer lägger till language

Båda subklasserna överskuggar också get_info(). De återanvänder basklassens version med super().get_info() och utökar sedan resultatet med sina egna detaljer.

Note
Notering

Detta gör basklassen till grunden, och subklassen till den specialiserade implementationen som ger flexibilitet.

question mark

Vad är subklassens roll i arv i Python?

Vänligen välj det korrekta svaret

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 2

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Avsnitt 2. Kapitel 2
some-alt