こんにちは、ヒロイです。
外部研修21日目です。
本日はJavaの「インターフェース」について学びました。
「新人研修2024 No.37」でメソッドについて説明しました。
インターフェースとはメソッドの処理内容を具体的に書かず、変数やメソッドの型のみを定義したものです。
例として、動物のインターフェースanimalsに鳴くというメソッドbark()を定義するとコードは以下の通りになります。
public interface animals{
public void bark();
}
犬クラスでインターフェースを実装し、鳴き声を表示をさせるとコードは以下のとおりになります。
public class Dog implements animals{
@Override
public void bark(){
System.out.println("ワン");
}
}
mainメソッドでDogクラスのオブジェクトを作成し、そのオブジェクトを元にbark()を呼び出すと表示結果は「ワン」となります。
ここまでの流れを見ると前日に学んだ「抽象クラス」と同じことをしていると思うかもしれません。
ですが、抽象クラスはアクセス修飾子がprivateやprotected、インターフェースはpublicとなるので使える範囲が変わります。
また、インターフェースは多重継承(複数のインタフェースを継承)ができるため、子クラスに機能の追加が容易です。
どちらも複数人開発の際に扱うとより違いがわかったり、恩恵が分かったりするのかもしれません。
学んだことを業務で使用した時に"そういう意味だったのか"と思えるように今後も理解を深めていきます。
ご覧いただきありがとうございました。
次回のブログもよろしくお願いします。