生涯学習コースのJAVAクラス、SJC-P (CX-310-055)対策用ノート。

ポリモーフィズム

一つのインタフェイス、複数の実装。

スーパークラス

そのクラスのオブジェクト、そこから派生した任意のオブジェクトを参照できる。
実行時のポリモーフィズム。

スーパーインタフェイス

インタフェイスに一つ以上のインタフェイスを拡張する。
複数のスーパーインタフェイス内で同じ変数名が定義される場合、コンパイル・エラー。
複数のスーパーインタフェイス内で同じ構文のメソッドを定義可能。
戻り値のデータ型が異なる場合は、コンパイル・エラー。

サブクラス

クラスが継承できるのは1つのスーパークラスだけ。
サブクラス内の静的変数名、インスタンス変数名がスーパークラスの変数名と同じ場合、スーパークラスの変数は隠される。
隠された変数を参照するには、キーワードsuperを利用する。

継承

オブジェクトには、そのクラスだけでなく、すべてのスーパークラスで定義されたインスタンス変数のコピーが含まれる。

オーバーライド

スーパークラスで定義されたメソッドと同一のシグネチャのメソッドを、サブクラス内に定義すること。
オーバーライドしたメソッドは、元のメソッドと同じデータ型の戻り値を返す。
スーパークラスで定義されたメソッドを再定義(上書き)する。
戻り値のデータ型が異なる場合は、コンパイル・エラー。

オーバーライドされる側以上のアクセス・レベルを設定しなければならない。
隠されたメソッドを参照するには、キーワードsuperを利用する。

動的メソッドディスパッチ

実行中のオブジェクトのクラスに基づいて、適切なオーバーライド・メソッドを選択する。
呼び出すメソッドは、実行時に選択される。

オブジェクトの初期化

サブクラスのコンストラクタを実行するだけでなく、スーパークラスのコンストラクタも実行しなければならない。
スーパークラスのコンストラクタは、サブクラスのコンストラクタよりも先に実行する必要がある。
コンストラクタを明示的に呼び出さない場合、コンパイラはsuper()を呼び出す。
コンパイラは、規定コンストラクタの暗黙的呼び出しがあるのもとして処理する。

フリーエリア

メンバーのみ編集できます