anson @Java スーパークラスのコンストラクタを指定してみる

※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

スーパークラスのコンストラクタを指定してみる

前回のサンプルを試してみてみると
サブクラスのオブジェクトを作成した場合、まずスーパークラスのコンストラクタが実行され
その次にサブクラスのコンストラクタが実行されていることに気づかれたかと思います
このようにサブクラスのオブジェクトを作成したら
自動的にスーパークラスのコンストラクタが実行されます
ですが、コンストラクタをオーバーロードし複数のコンストラクタが存在する場合
呼び出されるのは引数が何も無いコンストラクタが必ず呼び出されてしまいます
そこで引数のついたスーパークラスのコンストラクタを呼び出すには
super(引数、引数、・・);
を使用します
ここで引数を指定することで、該当するコンストラクタが呼び出されます
引数がなければ引数無しのコンストラクタが呼び出されます
だだしsuper()を使用する条件として
サブクラスのコンストラクタの html plugin Error : このプラグインを使うにはこのページの編集権限を「管理者のみ」に設定してください。 になければなりません






サンプル
class SuperClass {
	//変数
	public int cnt;
	//コンストラクタ
	public SuperClass(){
		System.out.println("スーパークラスのコンストラクタ");
	}
	//コンストラクタ2
	public SuperClass(int x, int y){
		System.out.println("スーパークラスのコンストラクタ2");
		System.out.println("引数は" + x + "と" + y);
	}
	//メソッド
	public void Out(){
		System.out.println("スーパークラスのメソッド");
	}
}

class SubClass extends SuperClass{
	//コンストラクタ
	public SubClass(){
		System.out.println("サブクラスのコンストラクタ");
	}
	//コンストラクタ2
	public SubClass(int x, int y){
		super(x, y);
		System.out.println("サブクラスのコンストラクタ");
	}
	//メソッド
	public void SubOut(){
		System.out.println("サブクラスのメソッド");
	}
}

class Sample {
	public static void main(String args[])
	{
		//サブクラス作成
		SubClass test = new SubClass(10, 50);

		//スーパークラスの変数
		test.cnt = 10;
		//スーパークラスのメソッド
		test.Out();
		//サブクラスのメソッド
		test.SubOut();
	}
}
戻る
| 新しいページ | 編集 | 差分 | 編集履歴 | ページ名変更 | アップロード | 検索 | ページ一覧 | タグ | RSS | ご利用ガイド | 管理者に問合せ |
|ログイン|