【Java基础】接口

首先,

最近我参加了Java基础培训。虽然在学生时代上课学过Java并掌握了基础知识,但有些内容却遗忘了,所以我将其作为备忘录记录下来。

在这篇文章中,我们将概括介绍Java的基础知识。
这次是关于接口(interfaces)。

接口是指一种连接不同系统或组件的方式。

接口是一种类,它通常只能声明公共的抽象方法。接口不能声明构造函数,而且不能实例化。

接口声明

接口的声明如下。

修飾子 interface インターフェース名 {
    インターフェースのメンバ
}

方法

在接口中,可以声明公共的抽象方法。

interface Booking {
    public abstract String getTitle();
    List<String> getContent();  // public abstractは省略できる
}

场地

在接口中,只能声明public static final的字段(常量)。

interface Booking {
    public static final String NAME = "Qiita_Official";
    int PRICE = 1000;  // public static finalは省略できる
}

接口的实现

接口不能独立实例化,实例化需要实现类。实现类是指实现了接口的所有抽象方法的具体类。声明实现类被称为实现接口。

接口的实现如下所示。

修飾子 class クラス名 implements インターフェース名 {
    // 抽象メソッドをオーバーライド
}
class Introduction implements Booking {
    // この時点ではコンパイルエラー
}

方法的重写

实现类必须重写接口的所有抽象方法。

class Introduction implements Booking {
    private String title;

    public Introduction(String title) {
        this.title = title;
    }

    @Override 
    public String getTitle() {
        return title;
    }

    @Override 
    public List<String> getContent() {
        return List.of(
            "Qiitaの投稿方法について紹介している本です。",
            "簡単な記事を1つ投稿することを目標としています。"
        );
    }
}

实现类也是一般的类。您可以声明字段、方法和构造函数。

接口的多重实现

在一个类中,可以实现多个接口。

interface Writing {
    void write();
}

當實現多個接口時,必須覆寫每個接口的抽象方法。

class Conclusion implements Booking, Writing {

    @Override 
    public String getTitle() {
        return "要旨";
    }

    @Override 
    public List<String> getContent() {
        return List.of(
            "Qiitaの投稿方法について紹介している本です。",
            "簡単な記事を1つ投稿することを目標としています。"
        );
    }

    @Override 
    public void write() {
        List<String> content = getContent();
        for (String line : content) {
            System.out.println(line);
        }
    }

}

总结

通过使用本篇文章介绍的接口以及之前介绍的继承,我们可以简洁地编写代码。通过有效的实施,我们努力使Java代码变得优雅!

bannerAds