Herència¶
Per què cal herència?¶
Per estendre les dades d’una classe, afegint-hi atributs: la classe SectorCircular al mòdul
figures. Vegeu SectorCircular al Python Tutor.Per estendre el comportament d’una classe, afegint-hi mètodes: Laberints.
Per especialitzar una classe: Artròpodes i aràcnids.
…
Sintaxi i terminologia¶
Sintaxi:
class B(A): sentències
Aés la classe base o pare.Aés una superclasse deB.Bés la classe derivada o filla.Bés una subclasse d”A.Bhereta d”A.Bté tots els atributs (de classe) i mètodes d”A.En
Bpodem afegir mètodes nous o redefinir mètodes d”A.
Què és l’herència?¶
L’herència és un mecanisme que permet evitar repetir codi (mètodes) en una classe derivada
Btal que el seu comportament és semblant al de la classe baseA.
__init__() i herència¶
Cal redefinir el mètode
__init__()a la classe derivada en aquests casos:Els objectes de la classe derivada tenen més atributs que els de la classe base.
L’operació d’instanciació de la classe derivada té un nombre o significat d’arguments diferents del de la classe base. O el que és el mateix, el nombre o significat de paràmetres del mètode
__init__()de la classe derivada difereix del de la classe base.
Sempre que es redefineix el mètode
__init__()de la classe derivada, cal cridar a__init__()de la classe base abans d’afegir els atributs nous.
Exemples d’herència¶
Exemples: mòduls figures, base_pol i polv.