Herencia java
E1.
a) Analice y compile las siguientes clases. Observe el cuerpo que se le asigna a los métodos constructores de cada una de ellas.
public class Padre {public Padre() {
System.out.println("Se ha llamado al constructor por defecto de la " +
"clase Padre");
}
public Padre(int n) {
System.out.println("Se ha llamado al constructor con un argumento "+
"entero n=" + n + " de la clase Padre");
}
}
public class Hijo extends Padre {
public Hijo() {
System.out.println("Se ha llamado al constructor por defecto de la " +
"clase Hijo");
}public Hijo(int n) {
System.out.println("Se ha llamado al constructor con un argumento " +
"int n=" + n + " de la clase Hijo");
}
}
b) Observe en el siguiente código la llamada que se hace al métodoconstructor por defecto de la clase Hijo. Ejecute el siguiente código y analice la salida que hace por pantalla ¿Por qué se produce dicha salida?
public class Experimento2 {
public static voidmain(String [] args){
Hijo h = new Hijo();
}
}
c) Modifique el programa anterior para que sea invocado el constructor con argumento entero de la clase Hijo. Observe la salida
¿Qué modificaciones habráque hacer para que en lugar de la llamada automática al constructor por defecto de la clase Padre se llame al constructor con argumento entero de dicha clase?
E2 .- Sean las siguientes clases:public class Animal {
public void sonido() {
System.out.println(“Grunt”);
}
}
public class Muflon extends Animal {
public void sonido() {
System.out.println(“MOOOO!”);
}
}
public classArmadillo extends Animal {}
¿Qué instrucciones del siguiente programa no son correctas?
public class Test1Animal {
public static void main(String[] args) {
adoptaAnimal(new Armadillo());
Object o =new Armadillo();
Armadillo a1 = new Animal();
Armadillo a2 = new Muflon();
}
private static void adoptaAnimal(Animal a) { }
}
E3.- Dada la siguiente jerarquía de clases:
Vehiculo
public...
Regístrate para leer el documento completo.