Supponiamo di avere una classe base astratta Parent che definisce un metodo astratto A (qualche parametro) prendendo un parametro, inoltre definisce un metodo di istanza B che chiama il metodo A (parametro) all'interno del suo corpo e passa alcuni parametri. Poi abbiamo una classe B concreta per bambini che estende la classe base e fornisce la propria implementazione del Metodo A utilizzando i pass dei parametri. Ho visto molte implementazioni di questa pratica in framework. Voglio sapere come funziona e fornisce vantaggi.
Ecco un codice scritto in Android
public abstract class ParentActivity extends Activity {
public abstract void onResume(LoginToken token);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Some implementation code
}
@Override
public void onResume() {
super.onResume();
Some implementation code
onResume(token);
}
}
public class ChildActivity extends ParentActivity{
LoginToken token;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Some implementation code
}
@Override
public void onResume() {
Some implementation code
super.onResume();
}
@Override
public void onResume(LoginToken token) {
this.token=token;
}
}