Sedikit ringkasan interface pada Java
Interface adalah class yang hanya mengandung deklarasi method tanpa memiliki
implementasi dan semua property yang dimilikinya bersifat final. Interface
mirip dengan class abstrak, tetapi interface tidak terikat dengan class
hierarki. Interface mendefinisikan sebuah cara standar dan umum dalam
menetapkan sifat-sifat dari class-class. Mereka menyediakan class-class, tanpa
memperhatikan lokasinya dalam hirarki class, untuk mengimplementasikan
sifat-sifat yang umum.
Berikut ini adalah aturan tentang pendeklarasian interface:
1.Modifier yang digunakan hanya public atau tidak sama sekali. Jika tidak menggunakan modifier maka interface tersebut hanya dapat diakses dalam package yang sama.
2.Semua variabel yang dideklarasikan dalam interface secara otomatis adalah static final. Karena itu waktu pendeklarasian harus diberikan nilai.
3.Semua method adalah abstrak. Bedanya dengan class abstrak adalah kita tidak perlu menuliskan keyword abstrak pada saat mendeklarasikan method dalam interface.
4.Kita dapat mengimplementasikan lebih dari satu interface (multiple inheritance) dengan memisahkan nama dari setiap interface dengan tanda koma.
5.Dapat terjadi saat kita mengimplementasikan lebih dari satu interface ternyata interface – interface tersebut memiliki method yang sama. Dalam hal ini method yang akan diimplementasi adalah method yang berada pada posisi pertama.
6.Semua method yang diimplemetasikan harus public.
7.Jika kita tidak mengimplementasikan semua method yang ada pada interface, maka class tersebut harus dideklarasikan sebagai abstract class.
1.Modifier yang digunakan hanya public atau tidak sama sekali. Jika tidak menggunakan modifier maka interface tersebut hanya dapat diakses dalam package yang sama.
2.Semua variabel yang dideklarasikan dalam interface secara otomatis adalah static final. Karena itu waktu pendeklarasian harus diberikan nilai.
3.Semua method adalah abstrak. Bedanya dengan class abstrak adalah kita tidak perlu menuliskan keyword abstrak pada saat mendeklarasikan method dalam interface.
4.Kita dapat mengimplementasikan lebih dari satu interface (multiple inheritance) dengan memisahkan nama dari setiap interface dengan tanda koma.
5.Dapat terjadi saat kita mengimplementasikan lebih dari satu interface ternyata interface – interface tersebut memiliki method yang sama. Dalam hal ini method yang akan diimplementasi adalah method yang berada pada posisi pertama.
6.Semua method yang diimplemetasikan harus public.
7.Jika kita tidak mengimplementasikan semua method yang ada pada interface, maka class tersebut harus dideklarasikan sebagai abstract class.
Ciri-ciri
dari interface pada Java:
1.Method interface tidak punya tubuh, sebuah interface hanya dapat mendefinisikan konstanta dan interface tidak langsung mewariskan hubungan dengan class istimewa lainnya, mereka didefinisikan secara independent.
2.Tidak bisa membuat instance atau objek baru dari sebuah interface.
3.Ciri umum lain adalah baik interface maupun class dapat mendefinisikan method.
1.Method interface tidak punya tubuh, sebuah interface hanya dapat mendefinisikan konstanta dan interface tidak langsung mewariskan hubungan dengan class istimewa lainnya, mereka didefinisikan secara independent.
2.Tidak bisa membuat instance atau objek baru dari sebuah interface.
3.Ciri umum lain adalah baik interface maupun class dapat mendefinisikan method.
Keyword
pada interface:
Abstrak: Kelas yang terletak pada posisi tertinggi pada hierarki kelas.
Implements: Kelas untuk menentukan satu atau lebih interface yang di implementasikan oleh kelas saat ini. Kelas A mewarisi jenis dan metode abstrak dinyatakan oleh interface.
Interface: Kumpulan method yang hanya memuat deklarasi dan struktur method, tanpa detail implementasinya.
Abstrak: Kelas yang terletak pada posisi tertinggi pada hierarki kelas.
Implements: Kelas untuk menentukan satu atau lebih interface yang di implementasikan oleh kelas saat ini. Kelas A mewarisi jenis dan metode abstrak dinyatakan oleh interface.
Interface: Kumpulan method yang hanya memuat deklarasi dan struktur method, tanpa detail implementasinya.
Kira-kira
gini contohnya program interface di Java
interface AlatMusik {
void mainkan();
void setelNada();
String ambilNama();
}
class AlatMusikPetik implements AlatMusik{
protected String nama;
public void mainkan() {
System.out.println(ambilNama() + "dimainkan dengan cara petik");
}
public void setelNada() {
System.out.println("setel nada pada " + ambilNama());
}
public String ambilNama() {
return nama;
}
}
class AlatMusikTiup implements AlatMusik{
protected String nama;
public void mainkan() {
System.out.println(ambilNama() + "dimainkan dengan cara tiup");
}
public void setelNada() {
System.out.println("setel nada pada " + ambilNama());
}
public String ambilNama() {
return nama;
}
}
class AlatMusikPukul implements AlatMusik{
protected String nama;
public void mainkan() {
System.out.println(ambilNama() + "dimainkan dengan cara pukul");
}
public void setelNada() {
System.out.println("setel nada pada " + ambilNama());
}
public String ambilNama() {
return nama;
}
}
class Gitar extends AlatMusikPetik {
Gitar(String nama){
this.nama = nama;
}
}
class Bass extends AlatMusikPetik {
Bass(String nama){
this.nama = nama;
}
}
class DemoInterface {
public static void main(String[] args) {
AlatMusikPetik gitar, bass;
gitar = new Gitar("Gitar");
bass = new Bass("Bass");
gitar.mainkan();
gitar.setelNada();
System.out.println();
bass.mainkan();bass.setelNada();
}
}
Output:
Gitar dimainkan dengan cara petik
Setel nada pada Gitar
Bass dimainkan dengan cara petik
Setel nada pada Bass
interface AlatMusik {
void mainkan();
void setelNada();
String ambilNama();
}
class AlatMusikPetik implements AlatMusik{
protected String nama;
public void mainkan() {
System.out.println(ambilNama() + "dimainkan dengan cara petik");
}
public void setelNada() {
System.out.println("setel nada pada " + ambilNama());
}
public String ambilNama() {
return nama;
}
}
class AlatMusikTiup implements AlatMusik{
protected String nama;
public void mainkan() {
System.out.println(ambilNama() + "dimainkan dengan cara tiup");
}
public void setelNada() {
System.out.println("setel nada pada " + ambilNama());
}
public String ambilNama() {
return nama;
}
}
class AlatMusikPukul implements AlatMusik{
protected String nama;
public void mainkan() {
System.out.println(ambilNama() + "dimainkan dengan cara pukul");
}
public void setelNada() {
System.out.println("setel nada pada " + ambilNama());
}
public String ambilNama() {
return nama;
}
}
class Gitar extends AlatMusikPetik {
Gitar(String nama){
this.nama = nama;
}
}
class Bass extends AlatMusikPetik {
Bass(String nama){
this.nama = nama;
}
}
class DemoInterface {
public static void main(String[] args) {
AlatMusikPetik gitar, bass;
gitar = new Gitar("Gitar");
bass = new Bass("Bass");
gitar.mainkan();
gitar.setelNada();
System.out.println();
bass.mainkan();bass.setelNada();
}
}
Output:
Gitar dimainkan dengan cara petik
Setel nada pada Gitar
Bass dimainkan dengan cara petik
Setel nada pada Bass
Tidak ada komentar:
Posting Komentar