necesisto saber el error, es polimorfismo

chemmamon
27 de Febrero del 2006
public abstract class Valetparking
{
public void estacionar ();
{

public abstract String puesto="Valetparking";

}
public class examina extends Valetparking
{
public void identica (Valetparking p)
{
p.estacionar();
}
}
public class gerente extends Valetparking
{
public String puesto="gerente";
}
public class mesero extends Valetparking
{
public String puesto="mesero";

}
public class pregunta
{
public static void main (String a[])
{
gerente g=new gerente();
mesero m=new mesero();
examina e=new examina();
e.identifica(m);
e.identifica(g);
}
}
}

Diego
27 de Febrero del 2006
No puedes declarar una variable abstracta, en su lugar declara un método abstracto para que devuelva el valor de la variable (o un método concreto si no quieres obligar a que las subclases implementen dicho método):

public abstract String puesto();

o implementándolo en cada clase:

public String puesto(){
return "Valetparking";
}

Si lo que deseas es que cada objeto devuelva un String con el nombre de su clase, declara en la clase base el siguiente método:
public String puesto(){
return getClass().getSimpleName();
}
y sobreescríbelo sólo cuando el método puesto() tenga que devolver algo diferente al nombre de la clase. Espero que te sirva.