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 de B.

  • B és la classe derivada o filla. B és una subclasse d”A. B hereta d”A.

  • B té tots els atributs (de classe) i mètodes d”A.

  • En B podem 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 B tal que el seu comportament és semblant al de la classe base A.

__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.

__init__() i herència al Python Tutor

Exemples d’herència