【Java】継承


Javaについて、復習しながら更新していきます。
今回のテーマは継承!!

継承

別のクラスを元にして、新たなクラスを作成することを継承と呼ぶ。継承関係にあるクラスは、元となるクラスをスーパークラス(親クラス)、新たに作成するクラスをサブクラス(子クラス)と呼ばれる。スーパークラスの定義されている変数・メソッドはサブクラスに引き継がれるため再定義しなくとも使用することができます。



[構文]
[修飾子] class サブクラス名 extends スーパークラス名
{
処理
}


[例]
///スーパークラスの定義
class SuperTest   
{  
	private String id = "10";
	public String getId() 
	{
		return id;
	}
}
///サブクラスの定義
class SubTest extends SuperTest  
{ 
	private String name = "名前";
	public String getName() 
	{
		return name;
	}
}
///サブクラスを実行
class Test_Exe  
{  
	public static void main(String[] args) 
	{
		 //サブクラスをインスタンス化
		SubTest sub = new SubTest();
		
		// サブクラスで定義したメソッドの呼び出し
		System.out.println(sub.getName());
		
		// スーパークラスで定義したメソッドの呼び出し
		System.out.println(sub.getId());
	}
}



thisとsuper

thisは自身のクラスのメンバを表し、superは親クラスのメンバを表す。



[構文]

this.メンバ
super.メンバ



[例]
///スーパークラスの定義
class SuperTest   
{  
	private String id = "";
	
	public void setId(String id) 
	{
		//自クラスのidに引数を格納
		this.id = id;
	}
}
///サブクラスの定義
class SubTest extends SuperTest  
{ 
	private String name = "";

	public void setName(String name) 
	{
		//自クラスのnameに引数を格納
		this.name = name;
	}
	
	public void setId() 
	{
		//親クラスのsetIdメソッドの呼び出し
		super.setId("20");
	}
}



継承時のコンストラクタの動き

継承を行うと、インスタンス化時にスーパークラスのコンストラクタが先に呼び出されてから、サブクラスのコンストラクタが実行される。



[例]
///スーパークラスの定義
class SuperTest   
{  
	//インスタンス化時に先に実行
	SuperTest()
	{
		System.out.println("先に実行");
	}
}
///サブクラスの定義
class SubTest extends SuperTest  
{ 
	//SuperTest()の後に実行
	SubTest()
	{
		System.out.println("SuperTest()の後に実行");
	}
}


以上。



【ブログを始めるなら】

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA