,

superの呼び出しが必要な場合の継承

androidでactivityの孫クラスを作ってハマリました.
onCreateをオーバライドしたかったのですが、onCreateではsuper.onCreateしなければならなりません.
孫クラスでやってしまうと当然子クラスのonCreateが呼ばれてしまい、子クラス特有の処理も実行されてしまいます.
Javaではsuper.superはないようです.

そこで固有の処理を別メソッドonCreateLocalにして

public void onCreate(Bundle bundle) {
  super.onCreate(bundle);
  onCreateLocal();
} 

ってすると、孫クラスでは自分のonCreateLocalが2回呼ばれてしまいます.
ということで孫クラスでは

public void onCreate(Bundle bundle) {
  super.onCreate(bundle);
} 

とすると1回で済むようになりました.曾孫クラスとその子孫でははなんとなくonCreateLocalをオーバライドすれば良いはずです.済んでみれば当たり前ですが、はまってオーバライドの挙動を確認するサンプルを実装しました.