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 private
no 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 color
y location
que protected
ya 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.