【Java】抽象クラス


Javaについて、復習しながら更新していきます。
今回のテーマは抽象クラス!!

抽象クラス

継承について、今まで処理を持つクラス(具象クラス)にて書いてきましたが、クラスには処理を記述せず、必ず継承を行って使用するクラス(抽象クラス)を定義することができる。抽象クラスには、処理を持つメソッドと、処理を持たないメソッド(抽象メソッド)を使用できる。


[構文]

[修飾子] abstract class クラス名
{
//処理
}



[決まり]
・abstractを指定して宣言を行う
・抽象クラスはインスタンス化できないため、使用する際は継承してサブクラス(具象クラス)を定義する
・抽象クラスで定義した抽象メソッドは、継承時に必ずオーバーライドし、実装すること(具象メソッドのオーバライドは任意である)



抽象メソッド

抽象クラスには、処理を持たないメソッド(抽象メソッド)を定義することができる。


[構文]

[修飾子] abstract 戻り値の型 メソッド名(引数リスト);



[決まり]
・abstractを指定して宣言を行う
・メソッドの定義は、{}処理内容を記述せずに;で終わるよう記述する


[例]
//抽象クラス
abstract class SuperAbstractTest
{ 
	 //抽象メソッド
	protected abstract void AbstractMethod(); 
	//具象メソッド
	public void Method(String str)
	{
		System.out.println(str);
	}             
}
//具象クラス
class SubAbstractTest extends SuperAbstractTest 
{  
	String name;
	
	// 抽象メソッドは必ず実装(オーバーライド)
	public void AbstractMethod()
	{ 
		System.out.println("抽象メソッドを実装");
	} 
	// 任意でオーバーライド
	public void Method(String str)
	{
		//処理内容は異なる
		this.name = str;
		System.out.println("具象メソッドをオーバーライド");
	}    
}



抽象クラスを継承する抽象クラス

抽象クラスに対して、抽象クラスを継承することも可能である。



[構文]

[修飾子] abstract class クラス名 extends 抽象クラス名
{
//処理
}



[決まり]
・abstractを指定して宣言を行う
・抽象クラスを継承した場合は、具象クラスと違い、抽象メソッドはオーバーライドする必要がない。


以上。



【ブログを始めるなら】

コメントを残す

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

CAPTCHA