PHASE2 LOG

主にIT関連・ゲームのログ

Javaのお勉強~インタフェースの継承~

      2016/03/12

 

インタフェースも継承することができます。

その方法についてお勉強してみます!

 

インタフェースを継承するには

 

 

クラスと同じように「extends」を使って継承します。

 

例を見てみましょう。

//1つ目のインタフェース
interface Item1 {	
	void Buy();
}

//2つ目のインタフェース
interface Item2 {	
	void Buy();
}

//インタフェースを2つ継承した新たなインタフェース
interface Shop extends Item1, Item2{
	String time = "AM 10:00";
	void Open();
}

 

継承するときは単体はもちろんのこと、複数のインタフェースも継承することができます。

複数継承する場合は、カンマ区切りでインタフェース名を記述します。

 

クラスを継承かつインタフェースも実装する

 

 

こんなことも出来るんだ~と思ったのがこのパターンですね。

以下のようにextendsを先に記述します。

class クラス名 extends 継承するクラス名 implements 実装するインタフェース名

 

実際の例がこちらです。

interface Greet {
	void greet();
}

class Hunter {
	String name;
	int HR;
	
	void Print(){
		System.out.println("名前:" + name);
		System.out.println("HR:" + HR);
	}
}

//Hunterクラスを継承かつGreetインタフェースを実装
class Rina extends Hunter implements Greet{
	String weapon;
	
	//HunterクラスのPrint()メソッドをオーバーライド
	void Print(){
		super.Print();	//スーパクラスのメソッドを参照
		System.out.println("武器:" + weapon);
	}
	
	//Greetインタフェースのgreet()メソッドをオーバーライド
	public void greet() {
		System.out.println("おはよーです♪");
	}
}

public class Super {
	public static void main(String[] args){
		Rina rina = new Rina();
		rina.name = "RINA";
		rina.HR = 7;
		rina.weapon = "太刀";
		rina.Print();
		rina.greet();
	}
}

 

RinaクラスでHunterクラスを継承して、Greetインタフェースも実装しています。

イメージにしたものは後日更新します。

 

継承から抽象メソッド、インタフェースなど色々学んできましたが

実際にはどうやって使い分けていくのかが非常に気になりますね~(・ω・)

 

 

人気ブログランキング

 -