0% encontró este documento útil (0 votos)
30 vistas2 páginas

Constructores en Herencia de Clases

El documento explica cómo funcionan los constructores en una jerarquía de clases en programación orientada a objetos, donde tanto superclases como subclases pueden tener sus propios constructores. Se detalla que el constructor de la superclase construye la parte correspondiente del objeto, mientras que el constructor de la subclase se encarga de su propia parte. También se menciona el uso de la palabra clave 'super' para invocar constructores de la superclase cuando ambos están definidos.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como TXT, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
30 vistas2 páginas

Constructores en Herencia de Clases

El documento explica cómo funcionan los constructores en una jerarquía de clases en programación orientada a objetos, donde tanto superclases como subclases pueden tener sus propios constructores. Se detalla que el constructor de la superclase construye la parte correspondiente del objeto, mientras que el constructor de la subclase se encarga de su propia parte. También se menciona el uso de la palabra clave 'super' para invocar constructores de la superclase cuando ambos están definidos.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como TXT, PDF, TXT o lee en línea desde Scribd

4.

Constructores y herencia
En una jerarquía, es posible que tanto las superclases como las subclases tengan
sus propios constructores. Esto plantea una pregunta importante: ¿qué constructor
es responsable de construir un objeto de la subclase, el de la superclase, el de la
subclase o ambos? La respuesta es esta: el constructor para la superclase construye
la porción de la superclase del objeto, y el constructor para la subclase construye
la parte de la subclase.

Esto tiene sentido porque la superclase no tiene conocimiento ni acceso a ningún


elemento en una subclase. Por lo tanto, su construcción debe estar separada. En la
práctica, la mayoría de las clases tendrán constructores explícitos (no
predeterminados). Aquí verá cómo manejar esta situación.

Cuando solo la subclase define un constructor, el proceso es sencillo: simplemente


construye el objeto de la subclase. La porción de superclase del objeto se
construye automáticamente utilizando su constructor predeterminado. Por ejemplo,
aquí hay un programa para Triangulo que define un constructor. También hace que el
estilo sea privado, ya que ahora lo establece el constructor.

//Clase para objetos de dos dimensiones


//[Link]
class DosDimensiones{
private double base;
private double altura;

//Métodos de acceso para base y altura


double getBase(){return base;}
double getAltura(){return altura;}
void setBase(double b){base=b;}
void setAltura (double h){altura=h;}

void mostrarDimension(){
[Link]("La base y altura es: "+base+" y "+altura);
}
}
//Una subclase de DosDimensiones para Triangulo
//[Link]
class Triangulo extends DosDimensiones{
private String estilo;

//Constructor
Triangulo(String s, double b, double h){
setBase(b);
setAltura(h);
estilo=s;
}

double area(){
return getBase()*getAltura()/2;
}

void mostrarEstilo(){
[Link]("Triangulo es: "+estilo);
}
}

class Lados3{
public static void main(String[] args) {
Triangulo t1=new Triangulo("Estilo 1",4.0,4.0);
Triangulo t2=new Triangulo("Estilo 2",8.0,12.0);

[Link]("Información para T1: ");


[Link]();
[Link]();
[Link]("Su área es: "+[Link]());

[Link]();

[Link]("Información para T2: ");


[Link]();
[Link]();
[Link]("Su área es: "+[Link]());

}
}
Salida:

Información para T1:


Triangulo es: Estilo 1
La base y altura es: 4.0 y 4.0
Su área es: 8.0

Información para T2:


Triangulo es: Estilo 2
La base y altura es: 8.0 y 12.0
Su área es: 48.0
Aquí, el constructor de Triangulo inicializa los miembros de DosDimensiones que
hereda, junto con su propio campo de estilo.

Cuando tanto la superclase como la subclase definen constructores, el proceso es un


poco más complicado porque deben ejecutarse tanto la superclase como los
constructores de subclase. En este caso, debe usar otra de las palabras clave de
Java, super, que tiene dos formas generales.

Lectura Recomendada

También podría gustarte