〜〜 C++講座・JAVA講座・VB講座・ネット収入講座・アフィリエイト講座・メール受信講座・株講座・投資信託講座・お小遣い講座 〜〜

   MENU           == JAVA基本講座 ==

1. はじめに
2. 変数/データ型
3. 文字列
4. 配列
5. 文法関連(C++との違い)
6. 継承
7. static(変数、関数、初期化)
8. コンストラクタ/デストラクタ
9. ガーベッジコレクション
10. インタフェース
11. パッケージ
12. 例外処理



 得@スキルアップ塾.com > JAVA基本講座 > 6. 継承

   継承


■概要

 ・継承は一つのクラスからしか出来ません
  ⇒C++では、複数の親クラスを継承することができます。

 ・階層に制限はありません。

 ・コンストラクタは継承されません。明示的にsuper()を呼び出す必要があります
  ※super()は一つ上の階層クラスの呼び出しです。複数階層になっている場合は、
    それぞれのクラスでsuper()を呼び出す必要があります。

 ・super()定義がされていない場合でも、コンパイラが自動的にデフォルトコンストラクタを呼び出します
  ※スーパークラス(親クラス)にデフォルトコンストラクタが定義されていない場合、
    コンパイルエラーになります。

 【補足】
 ・super() : スーパークラス(親クラス)のコンストラクタの呼び出しを行う

■基本構成

 ・継承する場合、"extends"定義よりスーパークラス(親クラス)を定義します。

【基本構成】
// ファイル名:TEST.java
// 基本構成
class Test{
  
public static void main(String args[]){

    B_class b_ob = new B_class;
  }
}


class A_class{

  A_class(){

    System.out.println(
"A_classのコンストラクタ");

  }

}
class B_class extends A_class{

  B_class(){

    //J super()定義がない場合でも、
    //J 引数無しのデフォルトコンストラクタが呼ばれる

    
//super();
    System.out.println(
"B_classのコンストラクタ");

  }

}
【実行結果】
A_classのコンストラクタ
B_classのコンストラクタ

※super()がコメント化されていても、A_classのコンストラクタ(引数無し)が呼ばれています。
  これは、コンパイラが暗示的にsuper()呼出しをおこなっている為です。


■暗示的なsuper()

 ・上記のとおり、super()定義がされていなくても、引数無しのコンストラクタが暗示的に呼び出されます
  但し、スーパークラスに引数無しのコンストラクタが定義されていない場合、エラーが発生します。

【コンパイルエラー】
// ファイル名:TEST.java
// 基本構成
class Test{
  
public static void main(String args[]){

    B_class b_ob = new B_class;
  }
}


class A_class{

  A_class(String str){

    System.out.println(str);

  }

}
class B_class extends A_class{

  B_class(){

    //J super()定義がない場合でも、
    //J 引数無しのデフォルトコンストラクタが呼ばれる
    //super();

    System.out.println(
"B_classのコンストラクタ");

  }

}
【コンパイル結果】
エラー発生:シンボルを解釈処理できません。


【解説】
super()がコメント化されている為、A_classのコンストラクタ(引数無し)を呼びにいこうとしますが、
A_classに引数無しコンストラクタが定義されていない為、コンパイルエラーは発生します。
※解決方法→A_classに引数無しのコンストラクタを定義すればエラーがなくなります。
 
 
    
A8ネット
 ・人気度:★★★★★
 ・言わずと知れた人気ASP

 
楽天市場
 ・人気度:★★★★★
 ・誰でも安心、楽天市場で

タワーレコード
 ・人気度:★★★★☆
 ・CD/DVDならタワレコで

 
■ネット証券関連おすすめ
イー・トレード証券
 ・人気度:★★★★★
 ・初心者はこちらから

マネックス証券
 ・人気度:★★★★★
 ・中級者ならこちらから






Copyright(C)2007 得@スキルアップ塾.comAll right reserved.