Copia de implementación de Java completamente de la superclase cuando las clases no difieren según los datos

Tengo varias subclases de una clase "A", digamos B, C y D. Almaceno varias de estas en un genérico

ArrayList<A> stuff;

B, C y D no tienen absolutamente ningún miembro de datos diferente que A. La única forma en que difieren es mediante diferentes métodos anulados. ME GUSTARÍA poder copiar cualquier instancia de la clase A a otra instancia de la clase A (conservando la verdadera subclase)

Algo como:

A obj1 = (A)new B(...)
A obj2 = (A)new C(...)
A obj3 = obj1.copy();
// (obj3 instanceof B) == true

Normalmente esto requeriría B, C y D para implementar métodos de copia personalizados. Sin embargo, esto parece un desperdicio ya que los miembros de datos son exactamente iguales y solo existirían para preservar la clase.

¿Hay alguna forma de que me salga con la suya solo implementando copia en la clase A y aún conservando las clases subyacentes de los objetos?

EDITAR:

Si estoy pensando correctamente, el problema con el que me encontraría si solo la superclase tuviera un método de copia:

class A {
    int dataMember;
    public A copy() {
        A ret = new A(); // !!
        ret.dataMember = dataMember;
        return ret;
    }

}

Cuando llamé "nuevo" no pude determinar genéricamente qué subclase de A es la clase, y además explícitamente crear una instancia de eso. ¿O hay una manera de hacer esto?

Respuesta 1

Podría dar Aun constructor de copia :

class A {

    public A(A other) {
        //copy other's fields to this instance
    }
}

Las subclases de Atambién podrían exponer un constructor que tomó una Ainstancia y se la pasó al superconstructor:

class B extends A {

    public B(A other) {
        super(other);
    }
}
Respuesta: 2

Quiero hacer algo como esto: File root = new File ("C: /file.txt"); pero en una carpeta que se comparte en una red local. Entonces, digamos que el archivo está en 192.168.1.28, ¿cómo hacerlo con el comando anterior? ...

No sé qué está causando que esto suceda. ¿Es porque lo estoy construyendo mal en Netbeans? Puedo construirlo y ejecutarlo bien en Netbeans. Pero cuando ejecuto el Jar haciendo clic en él, nada ...

He estado investigando esto durante una semana, pero me gustaría reflexionar sobre mi situación particular ... 2 servidores físicos: Servidor A - WAR público, administrador WAR Servidor B - Requisitos WAR públicos: Ambos ...

Estoy tratando de entender mi cerebro en torno a la programación paralela / concurrente (en Java) y me estoy quedando atrapado en algunos fundamentos que no parecen estar cubiertos en ninguno de los tutoriales que he estado leyendo. Cuando ...