Constructores y Herencia

Miki
30 de Diciembre del 2004
Hola a [email protected]

Tengo un problemilla con la herencia en java, quiero derivar una clase "SyncronizedCaller" de una clase "caller" que tiene un constuctor definido como "caller(int i, float f) {...}".

cuando intento compilar me retorna....

"caller(Callme,java.lang.String) in caller cannot be applied to ()
class SyncronizedCaller extends caller {

1 error"

¿¿¿Como puedo reutilizar el codigo del constructor de la clase padre sin tener que tocarla???

gracias

nicokiki
30 de Diciembre del 2004
Hola!!!!!!

Podes mandar los dos constructores???

Hay bastantes opciones => mandalos y vemos

Salu2!!!!!!!!


Miki
30 de Diciembre del 2004
Lo q tengo es esto...


class caller {
String msg;
Callme target;

public caller(Callme t, String s) {
target = t;
msg = s;
}
}

class SyncronizedCaller extends caller {
public SyncronizedCaller(Callme t, String s) {
super.caller(t, s);
}
public void run() {
//codigo sincrono
}
}

class NonSyncronizedCaller extends caller {
public NonSyncronizedCaller(Callme t, String s) {
//super.caller(t, s);
}

public void run() {
//codigo asincrono
}
}



Yo solo quiero que las dos clases derivadas se distingan por la función "run", pero que mantengan el constuctor de la clase padre.

La respuesta del compilador es la siguiente...



Sincronitzacio.java:21: caller(Callme,java.lang.String) in caller cannot be appl
ied to ()
public SyncronizedCaller(Callme t, String s) {
^
Sincronitzacio.java:22: cannot resolve symbol
symbol : method caller (Callme,java.lang.String)
location: class caller
super.caller(t, s);
^
Sincronitzacio.java:33: caller(Callme,java.lang.String) in caller cannot be appl
ied to ()
public NonSyncronizedCaller(Callme t, String s) {
^
3 errors


Así mejor??

gracias

nicokiki
30 de Diciembre del 2004
Hola!!!!!!!!

La verdad es q no deberia haber problemas. Ahora, por q haces super.NOMBRE_CLASE_PADRE y no super(valor1, valor2);

Salu2!!!!!!!! y perdon pero no se q puede ser

Miki
30 de Diciembre del 2004
Gracias, era lo del super(t, s).
Yo pensaba que tenia que decirle el nombre de la función (en este caso el constructor) y no sabia que siendo un constructor se podia hace a saco.

Muchas gracias nicokiki, ; )

nicokiki
30 de Diciembre del 2004
Una cosa mas, que o quien es Caller??? es otra clase. Si es asi, la incluiste???? porque otro problema no veo

Salu2!!!!!!!!!

nicokiki
30 de Diciembre del 2004
Quise decir Callme o algo asi, el atributo de la clase padre, lo incluiste????