Classes - Herència¶
Mecanisme per definir una classe a partir d’una altra de semblant.
Classe base = classe original; classe derivada = nova classe, que hereda (també anomenada subclasse).
S’hereden tots els mètodes (i per tant els atributs, perquè s’hereda
__init__
), peròes poden afegir nous mètodes i atributs
es poden redefinir mètodes
es poden reaprofitar els mètodes de la classe base, cridant_los amb
super().metode(...)
Per afegir nous atributs, redefinirem
__init__
en la classe derivada. Convé cridar -hi asuper().__init__(...)
.
Atenció
Una classe derivada no pot accedir als atributs privats de la classe base.
Sintaxi: definició d’una classe utilitzant herència
class ClasseDerivada(ClasseBase): # ClasseDerivada hereda de ClasseBase
def __init__(self, ...):
super().__init__(...)
self.atr1 = ...
self.atr2 = ...
...
def metode1 (self, ...):
...
Exemple:
Definció de la classe Rectangle
que es deriva (per herència) de la classe Quadrat
. Li afegeix un atribut i redefineix els mètodes que cal. Vegeu el mòdul rectangles.py
.