大阪市中央区 システムソフトウェア開発会社

営業時間:平日09:15〜18:15
MENU

Javaマスターへの道 資格勉強編 Part24

株式会社クローバーフィールドの経営理念
著者:miyauchiatsushi
公開日:2023/09/11
最終更新日:2023/09/11
カテゴリー:技術情報
タグ:

今日は前回のテーマである継承とだいぶ似ているInterfaceをやります。
以下今回使用するプログラムを貼っています。

public interface Interface {
    // int id; --why1--
    // String name; --why1--

    int id = 1;
    String name = "Yamada";

    // private void printName(); --why2--
    void printId();
    // protected void printName(); --why2--
    public void printName();

    // void printId() {
    //     System.out.println(id);
    // }

    // void printName() {
    //     System.out.println(name);
    // }
}
public class Super implements Interface {
    public void printId() {
        System.out.println(id);
    }

    public void printName() {
        System.out.println(name);
    }
}
public class Main {
    public static void main(String[] args) {
        Super s = new Super();
        s.printId();
        s.printName();
    }
}

さっそくインターフェースから見ていきましょう。
コメントアウトしている部分は外すとすべてコンパイルエラーになる部分です。
why1では変数宣言をしていますが、インターフェースでは暗黙でpublic static finalが付きますので
無理やり定数にさせられるので必ず中身を書かなければなりません。
why2ではメソッドのアクセス修飾子にprivateやprotectedは指定できないためエラーとなります。
その下ではメソッドの処理内容まで書いていますが、インターフェースではメソッドの処理内容は書かずにインターフェースを実装するクラスにて処理内容を書くことになっています。
このように継承時のスーパークラスと似ているので注意してください。

今日は以上です。
次回もインターフェースについてやっていこうと思います。

    上に戻る