Duda java

No se si esto debe ir aqui pero bueno... estoy haciendo una prueba con java y me da un error que no me explico
ublic class prueba1 {
int n;
int n2;
prueba1()
{
n=1;
n2=2;
}

prueba1(int num,int num2)
{
this.n=num;
this.n2=num2;
}
public int muestraTodo()
{
return n+n2;
}

}
/////////////////////////////////////////////////////////////
aqui va la segunda clase
blic class prueba2 extends prueba1{
public static void main(String[]args)
{
prueba2 a=new prueba2(78,20) ;//aqui da el error
System.out.println(a.n+" "+a.n2);
System.out.println(a.muestraTodo());
}


}
Pues esto me da error al construir el objeto con el constructor que recibe 2 enteros es como si no existiese ese constructor pero si prueba2 es una clase hija de prueba1 porque nolo hereda???
No puedes heredar constructores con pase de parametros en java, solo los constructores sin parametros. Si necesitas llamar a ese constructor en especifico deberás crear un constructor para esa subclase y llamar al constructor de la superclase explicitamente usando "super"

public class prueba2 extends prueba1{

////////////////////////////
prueba2(int num, int num2) {
   super(num,num2);
}
////////////////////////////
public static void main(String[]args)
{
prueba2 a=new prueba2(78,20) ;//aqui ya no da el error
System.out.println(a.n+" "+a.n2);
System.out.println(a.muestraTodo());
}


}
Pues lo dicho. Los constructores no se heredan.
También está la limitación de que no se acceden a los métodos y propiedades privadas, solo a las protected y a las públicas.
2 respuestas