Warisan ngidini kelas (kelas subclass utawa anak) kanggo nganggo maneh lan nambahi field lan method saka kelas liyane (kelas superclass utawa induk). Iku modelake hubungan is-a: Dog iku Animal.
Warisan ngidini kelas (kelas subclass utawa anak) kanggo nganggo maneh lan nambahi field lan method saka kelas liyane (kelas superclass utawa induk). Iku modelake hubungan is-a: Dog iku 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
Dog entuk __init__ lan eat kanthi gratis lan nambahi bark. Subclass uga bisa ngganti method warisan kanggo ngowahi prilaku.
| Kauntungan | Risiko |
|---|---|
| Nganggo maneh kode sing dibagi | Sambung erat karo kelas induk |
| Modelake hirarkis nyata | Kelas basis sing rapuh — owah-owahan induk mecah anak |
| Polimorfisme liwat tipe umum | Wit jero dadi angel dilaloni |
Prinsip umum: pilih komposisi tinimbang warisan nalika hubungane pancene "has-a", ora "is-a".
Warisan minangka fitur OOP sing paling disalahgunakaké: iku narik kanggo mung nganggo iku kanggo dibagi kode, iku sambung kelas sing ora nyambung.
Digunakake kanthi bener — mung kanggo hubungan is-a asli — iku menehi sampeyan nganggo maneh plus polimorfisme, ngidini sampeyan nganggap akeh subtipe kanthi selaras liwat superclass umum.