はじめに
前回の記事ではabstractと比べながらinterfaceについて見てきた。
今回はinterfaceが継承することができるクラスについてまとめた。
継承については以下の記事参照。
【Javaプログラミング】継承とは?スーパークラスとサブクラスについても -プロショvol.49
interfaceの特徴
Javaでは普通は1つのクラスからしか継承することは出来ない。
abstractではextendsを使用してクラスを引き継ぐが、引き継ぐことができるクラスの数は1つだけ。
interfaceだと複数のクラスを引き継がせることができる。
複数のクラスを1カ所に引き継がせたいときに便利。
引き継ぐ際にはextendsではなくimplementsを使用する。
複数のクラスを引き継ぐ
以下がinterfaceとimplementsを使用して複数のクラスを引き継いだコード。
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クラス」といった複数のクラスを引き継ぐことが可能になる。
最後に
abstractとinterfaceを使用する目的は同じく、重要な情報だけ表示させるようにすること。
メソッドの中身は引き継いだクラスの中に書かれる。
ただ、interfaceを使用することで複数のクラスを1つのクラスに引き継がせることができる。

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