Az öröklődés lehetővé teszi egy osztálynak (alosztály vagy ) egy másik osztály ( vagy ) mezőit és metódusait újra felhasználni és kiterjeszteni. A kapcsolatot modellezi: a .
Az öröklődés lehetővé teszi egy osztálynak (alosztály vagy ) egy másik osztály ( vagy ) mezőit és metódusait újra felhasználni és kiterjeszteni. A kapcsolatot modellezi: a .
DogAnimalclass Animal:
def __init__(self, name):
self.name = name
def eat(self):
return f"{self.name} is eating"
class Dog(Animal): # Dog inherits everything from Animal
def bark(self): # ...and adds new behavior
return "Woof!"
d = Dog("Rex")
print(d.eat()) # "Rex is eating" → inherited, not rewritten
print(d.bark()) # "Woof!" → Dog-specific
A Dog ingyen kapta meg az __init__ és eat metódusokat, és hozzáadta a bark metódust. Az alosztály az öröklött metódusokat is felül tudja írni a viselkedés megváltoztatásához.
| Előny | Kockázat |
|---|---|
| Megosztott kód újrafelhasználása | Szoros kapcsolat a szülővel |
| Valós hierarchiák modellezése | Törékenylépcsős alap — a szülő változásai eltörik a gyermekeket |
| Polimorfizmus közös típus segítségével | Mély fák nehezek nyomon követni |
Egy általános iránymutatás: a kompozíciónak prioritás az öröklődéssel szemben, amikor a kapcsolat valójában "has-a", nem "is-a".
Az öröklődés a legrosszabbul használt OOP funkció: csak kódmegosztásra használni csábító, ami nem kapcsolódó osztályokat szorosan összeköt.
Helyesen használva — csak valódi is-a kapcsolatokra — újrafelhasználást és polimorfizmust adó hozzáférést biztosít, lehetővé téve, hogy sok altípust egységesen kezeljünk a közös szülőn keresztül.
IT interjúkérdések gyűjteménye részletes válaszokkal — Juniortól Seniorig.
Adományozás