JAVA継承|初心者のためのオブジェクト指向

JAVAの継承はオブジェクト指向の開発をするために重要な役割を果たしてくれるとても心強い機能です。開発が進むにつれて過去に作ったメソッドと類似しているけど一部異なるクラスを作成する事も出てきます。継承はそんな面倒ごとを解決してくれるための便利な機能です。JAVA初心者が躓きやすいところでもあるので、焦らずに一つひとつじっくりと学んでいきましょう。

JAVA継承とは

JAVAの「継承」はオブジェクト指向の3大機能の一つです。既に作成済みのメソッドやフィールドなどの部品を利用して新しい部品を作成することができる機能です。例えば、Brave(勇者)メソッドから力と速さが倍のBrave2(勇者)メソッドを簡単に開発することができます。

継承クラスの定義

class クラス名 extends 継承するクラス名{
	継承するクラスにない「差分」の機能
}

Brabe(勇者)メソッドのサンプルソースコード

public class Brave {
	String name;//名前の宣言
	int hp=1000;//HPの宣言

	//攻撃
	public void attack(Monster m) {
		System.out.println(this.name+"の攻撃");
		m.hp-=20;
	}

	//逃げる
	public void escape() {
		System.out.println(this.name+"は逃走した");
	}
}

Monsterメソッドのサンプルソースコード

public class Monster {
	int hp=100;
	final int LEVEL=1;
	char suffix;
}

メインメソッドのサンプルソースコード

public class Sample {
	public static void main(String[] args) {
		Brave b=new Brave();//BraveクラスからBraveインスタンスを生成
		Monster m=new Monster();//BraveクラスからBraveインスタンスを生成

		b.name="ラーシャ";
		System.out.println("勇者のHPは"+b.hp+"だ");
		System.out.println("モンスターのHPは"+m.hp+"だ");

		b.attack(m);
		System.out.println(b.name+"はモンスターを攻撃!ダメージを与えてモンスターのHPは"+m.hp+"になった");

	}
}

出力結果

勇者のHPは1000だ
モンスターのHPは50だ
ラーシャの攻撃
ラーシャはモンスターを攻撃!ダメージを与えてモンスターのHPは80になった

Brave(勇者)クラスを継承してBrave2を作成

public class Brave2 extends Brave {//braveクラスを継承

	//2倍攻撃
	public void attack2(Monster m) {
		System.out.println(this.name+"の攻撃");
		m.hp-=40;
	}
}

Brave(勇者)クラスを継承してBrave2を作成したサンプルソースコード

Brave2クラスには、Braveクラスの攻撃力の2倍のダメージを与える事ができる機能がついている

public class Sample {
	public static void main(String[] args) {
		Brave b=new Brave();//BraveクラスからBraveインスタンスを生成
		Monster m=new Monster();//BraveクラスからBraveインスタンスを生成
		Brave2 b2=new Brave2();//Braveクラスを継承したBrave2クラスからBrave2インスタンスを生成

		b.name="ラーシャ";
		b2.name="スーパー"+b.name;
		System.out.println("勇者のHPは"+b.hp+"だ");
		System.out.println("モンスターのHPは"+m.hp+"だ");

		b.attack(m);
		System.out.println(b.name+"はモンスターを攻撃!ダメージを与えてモンスターのHPは"+m.hp+"になった");

		System.out.println(b.name+"は怒りが絶頂となり"+b2.name+"となった");
		b2.attack2(m);

		System.out.println(b2.name+"はモンスターを2倍攻撃!ダメージを与えてモンスターのHPは"+m.hp+"になった");

	}
}

出力結果

勇者のHPは1000だ
モンスターのHPは100だ
ラーシャの攻撃
ラーシャはモンスターを攻撃!ダメージを与えてモンスターのHPは80になった
ラーシャは怒りが絶頂となりスーパーラーシャとなった
スーパーラーシャの攻撃
スーパーラーシャはモンスターを2倍攻撃!ダメージを与えてモンスターのHPは40になった

コメント