プログラミング応用a 第12回『継承の基礎2』12-4 多段階の継承とObejectクラス,キャスト演算子による型変換

【12-4 多段階の継承とObejectクラス,キャスト演算子による型変換】

【多段階の継承】
・継承は多段階で行うことが出来る。次の例では,
  スーパークラスAのサブクラスBが定義され,
  さらに,BをスーパークラスとしてサブクラスCが定義されている。
List 10



【すべてのスーパークラスObject】
【キャスト演算子による型変換】

・スーパークラスが指定されていないクラスは,すべてObjectというJavaにもともと備わっている特別なクラスのサブクラスとなる(下図List11, Fig.4, 5)。
  ※つまり,Javaのプログラムに登場するすべてのクラスは,直接的にもしくは間接的に,Objectクラスのサブクラスということになる。
  ※Objectクラスは,Javaにおけるすべてのオブジェクトが持っているべき機能(フィールドやメソッドなどのメンバ)を定義しているクラスである。
   したがって,JavaのクラスはすべてObjectクラスから様々な機能を継承して持っていることになる。

・いままで学習してきたように,サブクラス(のオブジェクト)は,スーパークラス(のオブジェクト)として扱われる。
 言い方を変えると,Javaのシステムでは,サブクラス(のオブジェクト)は,スーパークラス(のオブジェクト)に自動で変換される,ということである。
 あまり良い作法とは言えないが,いったんスーパークラス(のオブジェクト)に変換された値を,キャスト演算子という演算子によって無理矢理サブクラス(のオブジェクト)に変換することも可能である(下図Fig.6,7)。
List 11