前回振り返り
ポリモーフィズムとは
特定の動作の要求に対して、オブジェクトごとに異なる処理をすることを「ポリモーフィズム」と言います。ポリモーフィズムを実装する際、一般的にはインターフェースが用いられます。インターフェースで定義できるのは、プロパティやメソッドのみですが、実装するクラスに対して定義したプロパティやメソッドを強制することができます。インターフェースを実装する際は、継承と同じくクラス名の右側にコロンを挟んでインターフェース名を記述します。
class 実装クラス implements インターフェース
{
//インターフェースで定義したプロパティやメソッドの実装
}
実装クラスでは、インターフェースにて定義されているプロパティやメソッドを実装しなければなりません。
たとえば、社員インターフェースとして「起立」の号令を強制したとします。
public interface IShain {
public void standup();
}
実装クラスでは、社員の役職によって動作が変わる場合があります。ただ、「ゆっくり」立とうが、「しゃきっと」立とうが、立つことには変わりありません。
public class Hira implements IShain {
@Override
public void standup() {
System.out.println("平社員がしゃきっと立ちました。");
}
}
このように、抽象的な振る舞いとしては一括りであるものの、オブジェクトごとに処理を変えたい場合、インターフェースが役に立つと思います。
前回演習問題の解答 例
問題1
問題文
インターフェースを作成してみましょう。
解答例
public interface IShain {
public void standup();
}
問題2
問題文
インターフェースを実装したクラスを3つ作ってみましょう。
解答例
public class Hira implements IShain {
@Override
public void standup() {
System.out.println("平社員がしゃきっと立ちました。");
}
}
public class Kacho implements IShain {
@Override
public void standup() {
System.out.println("課長がゆっくりと立ちました。");
}
}
public class Bucho implements IShain {
@Override
public void standup() {
System.out.println("部長が偉そうに立ちました。");
}
}
今回の演習問題
問題1
問題文
抽象クラスを作成してみましょう。
問題2
問題文
抽象クラスを継承したクラスを3つ作成してみましょう。
コメント