Javaとオブジェクト指向 super(4-18)

記事上広告

superキーワードの説明ページです。

superはフィールドやメソッドに付加することができる、スーパークラスのインスタンス(オブジェクト)を指し示すキーワードです。

superの概要

superは前述の通り、スーパークラスのインスタンス(オブジェクト)を指し示すものです。継承されたクラスのメソッドやフィールドはsuperが省略された形になっています。

また、this同様superもコンストラクタ内で利用することができます。

様々なsuperの記述と利用法

superをフィールドと利用する

スーパークラスとサブクラスでは同じフィールド名を定義することができ、サブクラス内でスーパークラスのフィールドを利用する場合はsuperを付加することで利用できます。
※基本的にフィールドはprivate宣言されており、スーパークラスのフィールドを直接利用できません。その為、フィールドにsuperを付けることはあまりありません。

フィールドにsuperを追加 super.フィールド名
記述例 super.name = name ;

superをメソッドに付加する

メソッドにsuperを付加すると、オーバーライドされる前(スーパークラス)のメソッドを呼び出すことができます。(オーバーライドの項でも説明しています

メソッドにthisを追加 super.メソッド名(引数)
記述例 super.execute() ;

superをコンストラクタ内で利用する

コンストラクタ内からスーパークラスのコンストラクタを呼び出す際に利用できます。但し、スーパークラスのコンストラクタを呼び出す場合は、必ず先頭に記述する必要があります。

コンストラクタをsuperで呼び出し super(引数)
記述例 Test(String s, int n){
空白super(s, n);
空白System.out.println(“初期化しました”) ;
}

super サンプルプログラム

以下のプログラムを「SuperTest.java」「Number42.java」という名前でWorkフォルダ内に保存します。

保存が完了したら、コマンドプロンプトを起動し、Number42.javaをコンパイルしてみましょう。

実行例

C:\work>javac Number42.java

C:\work>java Number42
スーパークラスのコンストラクタ
乗算を利用して等比数列を表示
3
6
12
24
48
96
192
384
768
1536
3072

※実行例はコンパイルおよび実行時の例を表示しています。

super 復習問題

問題
  • superの説明として正しいものを選んでください。
  • フィールド名を「spuer.フィールド名」とした変更した場合の説明として正しいものを選んでください。
  • super()という記述の説明として正しいものを選んでください。
  • お疲れ様でした。
解答群
    1. superを付加するとアクセス禁止となる
    2. superを付加するとスーパークラスを指し示す
    3. superを付加しない場合はsuperが自動的に付加される
    4. superは自分自身のオブジェクトを指し示す
    1. superを付加するとアクセス禁止となる
    2. superを付加するとローカル変数の扱いとなる
    3. superを付加すると自クラスのフィールドとして扱う
    4. superを付加するとスーパークラスのフィールドとして扱う
    1. super()はスーパークラスのメソッドを指し示し、メソッド内部で記述できる
    2. super()はスーパークラスのコンストラクタを指し示し、コンストラクタ内部で記述できる
    3. super()は引数ありのコンストラクタを呼び出す
    4. super()はコンストラクタを指し示し、コンストラクタ内部であれば記述場所は問わない

まとめ

  • superはスーパークラスのインスタンス(オブジェクト)を指し示す
  • フィールドやメソッドに付加でき、コンストラクタはsuper()として利用できる
  • スーパークラスのメソッドを呼び出すことにより、オーバーライド前のメソッドを利用できる
  • スーパークラスのコンストラクタを呼び出す際には「super(引数)」として利用できる
  • 「super(引数)」はコンストラクタ内部の先頭にしか記述できない
参加 ブログランキング

記事頑張って書いたかもねー?と思う方は下を押してもらえるといいかなーなんて
にほんブログ村 IT技術ブログへ
にほんブログ村


Javaランキング

目次へのアクセス
スポンサーリンク
レクタングル

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
レクタングル