La herencia
Artículo por Club Developers · 14 mayo 2006
2285 vistas
La herencia es uno de los principales conceptos de la Programación Orientada a Objetos (POO). Permite obtener unos niveles de reutilización muy elevados, cosa que aumenta proporcionalmente la productividad y la fiabilidad de las aplicaciones y facilita el mantenimiento.
La herencia es un mecanismo que permite definir una nueva clase a partir de una clase ya existente. En Java, para definir una clase a partir de otra, se coloca la palabra clave extends entre el nombre de la nueva clase y el de la clase que se pretende heredar.
La herencia implica varias cosas:
El acceso a estos atributos o métodos se hace con la palabra clave super. Para más información, ver la FAQ [iurl=90&all=0&fs=785#789]this y super[/iurl]
Veamos como se define la accesibilidad a los componentes de la super-clase en función de los modificadores:
[table]
[tr]
[td]Palabra[/td]
[td]Visibilidad[/td]
[/tr]
[tr]
[td]public[/td]
[td]sÃ[/td]
[/tr]
[tr]
[td]"vacÃo"[/td]
[td]SÃ si la clase hija se encuentra en el mismo package que la super-clase[/td]
[/tr]
[tr]
[td]protected[/td]
[td]sÃ[/td]
[/tr]
[tr]
[td]private[/td]
[td]No[/td]
[/tr]
[/table]
La herencia es un mecanismo que permite definir una nueva clase a partir de una clase ya existente. En Java, para definir una clase a partir de otra, se coloca la palabra clave extends entre el nombre de la nueva clase y el de la clase que se pretende heredar.
java
public class Hija extends Padre {  // aquà el código de la clase hija }
La herencia implica varias cosas:
- La clase hija hereda el tipo del padre
java
 String nombre;    this.nombre = nombre;  } }  public Rojo(){    super("rojo");  } } public class OtraClase(){    //etc.  }    OtraClase ac = new OtraClase();    ac.setColor(new Rojo());  } }
- La clase hija hereda los atributos, métodos y constructores de la clase padre
El acceso a estos atributos o métodos se hace con la palabra clave super. Para más información, ver la FAQ [iurl=90&all=0&fs=785#789]this y super[/iurl]
Veamos como se define la accesibilidad a los componentes de la super-clase en función de los modificadores:
[table]
[tr]
[td]Palabra[/td]
[td]Visibilidad[/td]
[/tr]
[tr]
[td]public[/td]
[td]sÃ[/td]
[/tr]
[tr]
[td]"vacÃo"[/td]
[td]SÃ si la clase hija se encuentra en el mismo package que la super-clase[/td]
[/tr]
[tr]
[td]protected[/td]
[td]sÃ[/td]
[/tr]
[tr]
[td]private[/td]
[td]No[/td]
[/tr]
[/table]