Código Java:
Ver originalpublic class Model {
public static void main
(String[] args
) {
Model m = new Model();
m.ejecuta(new Model());
m.ejecuta(new Arriba());
m.ejecuta(new Abajo());
m.ejecuta((Model)new Arriba());
}
public void start(){
}
public void ejecuta (Model model){
model.start();
}
}
class Arriba extends Model{
@Override
public void start(){
}
}
class Abajo extends Model{
@Override
public void start(){
}
}
Échale un ojo al polimorfismo y herencia, te vendrá bien.