Java Herencia ... Confundido

Tengo una clase padre abstracta que tiene varios hijos. Me gustaría que el niño pueda tener una variable que sea igual para cada instancia de ese niño. Prefiero no pasarle un constructor al niño para que le diga su nombre porque eso parece una tontería cuando se puede codificar. Por lo que he leído haciendo lo siguiente "oculta" la variable de instancia de los padres y no funciona como yo quiero.

public abstract class Parent {
    public String name = "the parent";
    public getName(name);
}
public class Child1 extends Parent {
    public String name = "Jon";
}
public class Child2 extends Parent {
    public String name = "Mary";
}

Child1 c = new Child1();
c.getName(); // want this to return "Jon", but instead returns "the parent".

Para ser claros, básicamente lo que quiero es algo como c.getClass (). GetName () pero no quiero que el resultado dependa del nombre de la clase, sino de un valor codificado.

Gracia

Respuestas a la pregunta(8)

Su respuesta a la pregunta