-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
En Java, cuando quieras crear objetos polimórficos, vas a tener que declarar explícitamente que sus clases comparten una interfaz, y para esto vas a tener que utilizar la declaración interface
.
Por ejemplo, en lugar de escribir esto:
class Estado{
double precio(Prenda prenda);
}
class Nueva extends Estado{
double precio(Prenda prenda) {
return prenda.precioBase();
}
}
class Promocion extends Estado{
double valor;
double precio(Prenda prenda){
return prenda.precioBase() - valor;
}
}
Vas a tener que escribir esto:
interface Estado{
double precio(Prenda prenda);
}
class Nueva implements Estado{ //notá que ahora dice implements
double precio(Prenda prenda) {
return prenda.precioBase();
}
}
class Promocion implements Estado{
double valor;
double precio(Prenda prenda){
return prenda.precioBase() - valor;
}
}
Si no, vas a estar declarando a Estado
como una clase, lo cual es una decisión muy fuerte porque la herencia es un arma de un sólo tiro (no podés heredar de más de una clase) y muy rígida (heredar implica "traerse" todo el comportamiento y el estado de tu clase padre y sus ancestros).
Metadata
Metadata
Assignees
Labels
No labels