Dalam sesetengah projek, ada masa code ditulis oleh beberapa orang programmer. Contohnya, seorang mungkin buat class Kucing, dan seorang lagi menggunakan class Kucing di method main(). Jadi, mereka perlulah tahu apa yang boleh dilakukan oleh class Kucing. Oleh itu, interface digunakan untuk menentukan apa yang patut ada pada class Kucing.

Untuk membuat interface, klik kanan pada package kucing, kemudian klik New Java Interface. Kita boleh namakan apa-apa sahaja, jadi kita namakan interface ini sebagai HaiwanBergerak. Selepas klik Finish, Netbeans akan menghasilkan file berikut:

package kucing;

public interface HaiwanBergerak {

}

Untuk menambah fungsi HaiwanBergerak, kita boleh buat seperti sewaktu menghasilkan method. Cuma bezanya method di interface tidak ada curly braces, {}. Contohnya,

package kucing;

public interface HaiwanBergerak {

    void jalan();

    void lari();

    void lompat();
}

Dengan ini, mana-mana class yang menggunakan interface HaiwanBergerak wajib menambah method jalan(), lari(), dan lompat().

implements

Keyword implements boleh diletakkan pada class untuk menggunakan sesuatu interface. Contohnya,

package kucing;

public class Kucing implements HaiwanBergerak {

    private String nama;
    private int umur;

    public Kucing(String nama, int umur) {
        this.nama = nama;
        this.umur = umur;
    }
}

Kemudian kita wajib menambah methods pada class Kucing mengikut methods yang ada pada interface HaiwanBergerak, seperti berikut:

package kucing;

public class Kucing implements HaiwanBergerak {

    private String nama;
    private int umur;

    public Kucing(String nama, int umur) {
        this.nama = nama;
        this.umur = umur;
    }

    @Override
    public void jalan() {

    }

    @Override
    public void lari() {

    }

    @Override
    public void lompat() {

    }
}

@Override ditambah bertujuan untuk beritahu compiler bahawa kita tahu apa yang kita tengah buat. Kemudian, kita boleh tambah code dalam methods tersebut bergantung kepada apa yang kita mahu:

package kucing;

public class Kucing implements HaiwanBergerak {

    private String nama;
    private int umur;

    public Kucing(String nama, int umur) {
        this.nama = nama;
        this.umur = umur;
    }

    @Override
    public void jalan() {
        System.out.println("Jalan...");
    }

    @Override
    public void lari() {
        System.out.println("Lari!");
    }

    @Override
    public void lompat() {
        System.out.println("Lompat!");

    }
}

Kita juga boleh menggunakan lebih dari satu interface pada satu class, contohnya:

package kucing;

public class Kucing implements HaiwanBergerak, HaiwanBeranak {

    private String nama;
    private int umur;

    public Kucing(String nama, int umur) {
        this.nama = nama;
        this.umur = umur;
    }

    @Override
    public void jalan() {
        System.out.println("Jalan...");
    }

    @Override
    public void lari() {
        System.out.println("Lari!");
    }

    @Override
    public void lompat() {
        System.out.println("Lompat!");
    }

    @Override
    public void beranak() {
        System.out.println("Beranak!!!!!");
    }
}

Antara kelebihan menggunakan IDE seperti Netbeans ialah IDE boleh menambah methods daripada interface tersebut secara automatik.