Tugann oidhreacht ar aclass (an subclass nó leanbh) na réimsí agus modhanna a class eile (an superclass nó tuismitheoir) a athúsáid agus a leathnú. Samhlaíonn sé gaol is-a: Dog is Animal.
Tugann oidhreacht ar aclass (an subclass nó leanbh) na réimsí agus modhanna a class eile (an superclass nó tuismitheoir) a athúsáid agus a leathnú. Samhlaíonn sé gaol is-a: Dog is Animal.
class 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
Fuair Dog __init__ agus eat saor in aisce agus chuir sé bark leis. Is féidir le subclass modhanna oidhrithe a fhorshéanadh freisin chun iompar a athrú.
| Buntáiste | Baol |
|---|---|
| Cód comhroinnte a athúsáid | Cúpláil dhocht don tuismitheoir |
| Éan-úsáidí fíorúla a shamhaltú | Bonn-aclass lagaithe — briseann athruithe ar thuismitheoir leanaí |
| Polymorphism trí chineál coitianta | Éanlanna domhain deacair a leanúint |
Treoir choitianta: cur i bhfeidhm a fhabhraigh ar oidhreacht nuair atá an gaol i ndáiríre "has-a", ní "is-a".
Is é oidhreacht an gné OOP is misghnóthaithe: tá sé temptful a úsáid ach chun cód a roinnt, rud a chuplaíonn ranganna gan bhaint.
A úsáidtear i gceart — ach amháin do ghaoil fhíor-a — tugann sé athúsáid ar bhraistint plus polymorphism, ag ligint duit go leor subtypes a chóireáil go comhionann trína gcomhtuismitheoir coiteann.