¿Cuál es el mejor enfoque para crear un objeto dentro de la clase abstracta?

aviv.L:

¿Cuál es el mejor enfoque para la formación de color y la ubicación de los objetos dentro de una clase abstracta, y por qué ?

enfoque 1

public abstract class Vehicle {
    private int vehicleId;
    private Color color; // color Object
    private Location location; // location Object

    public Vehicle() {
        color = new Color();
        location = new Location();
    }
}

public class Car extends Vehicle {
    private String type;

    public Car() {
        super();    
    }
}

enfoque 2

public abstract class Vehicle {
    private int vehicleId;
    protected Color color; // color Object
    protected Location location; // location Object

    public Vehicle(){}
}

public class Car extends Vehicle {
    private String type;

    public Car(){
        super();
        super.location = new Location();
        super.color = new Color();    
    }
}
Themelis:

La diferencia entre los dos aproaches es que la primera instancia de su estado en la clase abstracta . Así que cada heredero heredará ese estado (aunque no se puede acceder a él desde su privateno protected).

En el segundo enfoque, el estado del objeto se está inicializado dentro constructor de la heredera y, probablemente, que se vieron obligados a declarar colory locationque protectedya no sería capaz de acceder a ese estado.

¿Qué enfoque es mejor? Depende ... Si quieres que cada niño hereda un estado común, la primera. Si desea que todos los niños a definir su propio estado, el segundo.

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=394207&siteId=1
Recomendado
Clasificación