見出し画像

インターフェースについて vol.50

前回は、抽象クラスについての説明だった。
今回はインターフェースについて。

1.インターフェースとは

インターフェースとは、抽象メソッドのみのクラスのことである。

インターフェースは、機能は考えたが、具体的な処理を記述せず大枠の骨組みだけのクラス。

インタフェースを抑えると二点で言える。

1.すべてのメソッドが抽象メソッドである
2.基本的にフィールドを持たない

2.インタフェースの宣言

前回の抽象クラスではabstractを使用した。

前回はこちら。

では、インタフェースの宣言はというと

classをinterfaceに変える。

実際に書いてみよう。

画像1

このようにclassをinterfaceに変えるだけ。
ちなみにabstractは省略できる。

画像2

このような書き方になる。

インタフェースを実装してみよう。(継承のこと)

3.インタフェースの実装

実装とは要するに継承して実際に処理をオーバーライドしていくこと。

今までの継承では子クラスのクラス名の後に、extends 親クラスの様に継承してきたが、
インタフェースは変わってくる。
extendsがimplementsになる。

public class Iphone extends CellPhone
        ⇓
public class Iphone implements CellPhone

のようになる。

public class Iphone implements CellPhone

に変えることで

画像3

このようにクラス名に赤い波線が出る。
赤い波線にカーソルを合わせて、実装されていないメソッドを追加を押せば、

画像4

このように自動的に追加されオーバーライドのし忘れがなくなる。

これがインタフェースの実装の仕方だ。

4.特別扱いされるインタフェース

インタフェースは特別だ。

なぜかというと複数の親インタフェースを実装できるから。

普通の継承や抽象メソッドの継承では複数の実装はできないが、
インタフェースであれば多重に実装できる

では書き方はというと、

public class 子クラス名 implements インタフェース名1 , インタフェース名2 , インタフェース名3 , ・・・{
}

このように,(カンマ)区切りで複数のインタフェースを呼ぶ言ことができる。

またextendsとimplementsを同時に使うことができる。

要するに、普通のクラスの継承もしくは抽象クラスの継承を行いつつインタフェースを実装できるということだ。

public class 子クラス名 extends 親クラス名 implements
インタフェース名1 , インタフェース名2 , インタフェース名3 , ・・・{
}

このようになる。

少し複雑に感じつかもしれないが、覚えておいて損はないことだと思う。

継承がある程度わかればプログラムの流れもわかってくるのではないかと思うので、練習で使っていただきたい。

今回は以上

では、また次回
元体育会系文系エンジニア石黒

この記事が気に入ったらサポートをしてみませんか?