インターフェイス
インターフェースも抽象クラスと同じように「このフィールドとメソッドは持っている」という保証するためのものです。
ただし抽象クラスから継承できる子クラスは1つですが、インターフェースだと1つの子クラスにいくつでもつけることができます。
下記のご紹介した本ではこのように例えています。
抽象クラスは、「親から受け継ぐ家業」のようなもの。お団子屋さんの息子は、お団子屋さんを継承することはできるけど、ラーメン屋さんを継承することは基本的にできないし難しいですよね。
一方、インターフェースは、できたクラスにあとからいくつでもつけることができる。例えていうならお団子屋さんでも介護の資格とかは取得できるように。
インターフェースの実践
「問題を出すクラス」にインターフェースを追加してみましょう。今回は「ヒントを出せる資格」を追加してみましょう。実装結果は以下の感じです。
まずは「インターフェース」を作ります。「public interface インターフェース名」と書きます。ブロック内にできることとして「public データ型 メソッド名」とメソッド名だけを書いて、具体的なメソッドの中身は各クラスのほうに書いていきます。
このインターフェースを実装しているクラスは、getHint()メソッドを実行できることを約束されます。
HintAdviser.java
次に、 このインターフェースをクラスに追加します。インターフェースを実装する場合には「class クラス名 implements インターフェイス名」句を使用し下記のように記述します。今回はQuizクラスに追加します。大元にできることなので、子クラスはみんなできることになります。
そしたら各クラスに「getHint()」メソッドの中身を追加します。
MushikuiQuiz.java
MistakeQuiz.java
クラス内に以下を追加します。
TanukiQuiz.java
同じくクラス内に以下を追加します。
Main.java
最後に、Main.javaで、ヒントを表示させるように修正します。各問題に応じたヒントが出るようにします。赤枠部分を追加します。
実行してみると・・・
問題に応じてヒントが出るようになりました。
Java1年生 体験してわかる!会話でまなべる!プログラミングのしくみ / 森巧尚 【本】
この本から引用、参考にして学びました。この本ではキャラクターが対話しながら進み、あきることなく図解などを多用して初心者が始めるにはとても分かりやすい本です。
身に付け消えないスキルが約2,000円ならコスパよく、買っておいてよかったと満足してます。
短期間でのレベルアップにはプロから学ぶのもありです。
就職・転職支援
ぺージの先頭に戻る(Return to top of page)
©2020年9月 Challenge programming