¿Cómo sortear la falta de campos abstractos en Java?

Supongamos que tenemos una clase abstracta.A y queremos forzar a todas las subclases a tener un campo determinado. Esto no es posible en Java, porque no podemos definir campos abstractos.

Solución 1: Forzar subclases para implementar un método que entrega el valor deseado.

abstract class A {
  abstract int getA();
}

Retirarse: Cada subclase tiene que implementar un método para cada campo abstracto que queremos tener. Esto puede llevar a muchas implementaciones de métodos.

Ventaja: Podemos utilizar el método.getA en la clase abstracta e implementar métodos con ella enA Sin implementarlas en cada subclase. Pero el valor detrás del método no puede ser sobrescrito por la clase abstracta.

Solución 2: Simule el campo abstracto forzando a la subclase a dar un valor a la clase abstracta.

abstract class A {
  int a;

  public A(int a) {
    this.a = a;
  }
}

Retirarse: Cuando tenemos varios campos (> 10), la llamada del súper constructor se verá un poco fea y confusa.

Ventaja: Podemos usar el campoa en la clase abstracta e implementar métodos con ella enA Sin implementarlas en cada subclase. Además, el valora Puede ser sobrescrito por la clase abstracta.

Pregunta: ¿Qué solución es la forma común de alcanzar la meta? Tal vez hay uno mejor que los anteriores?

Respuestas a la pregunta(5)

Su respuesta a la pregunta