【Javaプログラミング】interfaceはクラスを複数継承できる-プロショvol.58

スポンサーリンク
Java攻略
スポンサーリンク

はじめに

 

前回の記事ではabstractと比べながらinterfaceについて見てきた。

今回はinterfaceが継承することができるクラスについてまとめた。

 

interfaceの特徴

 

Javaでは普通は1つのクラスからしか継承することは出来ない

abstractではextendsを使用してクラスを引き継ぐが、引き継ぐことができるクラスの数は1つだけ。

 

interfaceだと複数のクラスを引き継がせることができる。

複数のクラスを1カ所に引き継がせたいときに便利。

引き継ぐ際にはextendsではなくimplementsを使用する。

 

複数のクラスを引き継ぐ

 

以下がinterfaceimplementsを使用して複数のクラスを引き継いだコード。

interface cooking{
public void taste();
void smell();
}

interface howToCook{
void way();
}

class Tonkatsu implements cooking,howToCook{
public void taste() {
System.out.println(“美味しい”);
}

public void smell() {
System.out.println(“いい匂い”);
}

public void way() {
System.out.println(“カラッと揚げる”);
}
}

public class cookingMain {

public static void main(String[] args) {
Tonkatsu katsu = new Tonkatsu();
katsu.taste();
katsu.way();

}

}

実行すると以下のようになる。

美味しい
カラッと揚げる

 

前回の記事で作ったコードにオレンジの部分を足しただけのもの。

本来なら1つのクラスからしか引き継ぐことは出来ない。

interfaceを使うことで上のコードのように「Tonkatsuクラス」は「cookingクラス」と「howToCookクラス」といった複数のクラスを引き継ぐことが可能になる。

 

引き継ぎたいクラスが複数あるときは、名前をコンマ(,)で区切る。
class クラス名 implements 引き継ぎたいクラス名1 , クラス名2 , クラス名3 , ・・・{ }

 

最後に

 

abstractとinterfaceを使用する目的は同じく、重要な情報だけ表示させるようにすること。

メソッドの中身は引き継いだクラスの中に書かれる。

 

ただ、interfaceを使用することで複数のクラスを1つのクラスに引き継がせることができる。

塊(グループ)を作りやすい感じ。

このエントリーをはてなブックマークに追加

コメント

タイトルとURLをコピーしました