Java Interface

Interface adalah jenis khusus dari blok yang hanya berisi method signature(atau constant ). Interface mendefinisikan sebuah(signature) dari sebuah kumpulan method tanpa tubuh. 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. Dengan catatan bahwa interface-interface juga menunjukkan polimorfisme, dikarenakan program dapat memanggil method interface dan versi yang tepat dari method yang akan dieksekusi tergantung dari tipe object yang melewati pemanggil method interface. Kita akan menggunakan interface jika kita ingin class yang tidak berhubungan mengimplementasikan method yang sama. Melalui interface-interface, kita dapat menangkap kemiripan diantara class yang tidak berhubungan tanpa membuatnya seolah - olah class yang berhubungan. Mari kita ambil contoh class Line dimana berisi method yang menghitung panjang dari garis dan membandingkan object Line ke object dari class yang sama. Sekarang, misalkan kita punya class yang lain yaitu MyInteger dimana berisi method yang membandingkan object MyInteger ke object dari class yang sama. Seperti yang kita lihat disini, kedua class-class mempunyai method yang mirip dimana membandingkan mereka dari object lain dalam tipe yang sama, tetapi mereka tidak berhubungan sama sekali. Supaya dapat menjalankan cara untuk memastikan bahwa dua class-class ini mengimplementasikan beberapa method dengan tanda yang sama, kita dapat menggunakan sebuah interface untuk hal ini. Kita dapat membuat sebuah class interface, katakanlah interface Relation dimana mempunyai deklarasi method pembanding. Relasi interface dapat dideklarasikan sebagai, 

interface Manusia {
    String JENIS_KELAMIN = “laki-laki”;
    public void nama();
    public void usia();
}



  class Thomas implements Manusia {
   public void nama() {
     System.out.println(“Nama : Thomas”);
   }
   public void usia() {
     System.out.println(“Usia : 22”);
   }
  }

  class AksesInterface {
    public static void main(String[] args) {

    Thomas tm = new Thomas();
    tm.nama();
    tm.usia();
    System.out.println(“Jenis Kelamin : “ + tm.JENIS_KELAMIN);
   }
}


Lalu, bagaimana caranya agar kita dapat mengimplementasikan interface lebih dari satu. Caranya adalah seperti dibawah ini :

Code:
interface KrisDayanti {
  public void pekerjaanKrisDayanti();
}
interface Malih {
  public void pekerjaanMalih();
}





// mengimplementasikan interface lebih dari satu
class Selebriti implements KrisDayanti, Malih {
   public void pekerjaanKrisDayanti() {
     System.out.println(“Penyanyi”);
  }
   public void pekerjaanMalih() {
     System.out.println(“Pelawak”);
   }
}
class AksesInterface {
   public static void main(String[] args) {
     Seleberiti seleb = new Selebriti();
     seleb.pekerjaanKrisDayanti();
     seleb.pekerjaanMalih();
   }
}


Pewarisan interface

Untuk melakukan pewarisan interface cara yang digunakan sama dengan cara saat kita melakukan pewarisan class, yaitu menggunakan kata kunci extends.

Code:
interface Mahasiswa {
  public void namaMahasiswa();
}
interface MataKuliah extends Mahasiswa {
  public void nama MataKuliah();
}




class Akademik {
   public void namaMahasiswa() {
     System.out.println(“Aku”);
  }
   public void namaMataKuliah() {
     System.out.println(“OOP”);
   }
}
class Kuliah {
   public static void main(String[] args) {
    Akademik akd = new Akademik();
    akd.namaMahasiswa();
    akd.namaMataKuliah();
  }
}
interface I1 { void methodI1(); // public static by default } interface I2 extends I1 { void methodI2(); // public static by default } class A1 { public String methodA1() { String strA1 = "I am in methodC1 of class A1"; return strA1; } public String toString() { return "toString() method of class A1"; } } class B1 extends A1 implements I2 { public void methodI1() { System.out.println("I am in methodI1 of class B1"); } public void methodI2() { System.out.println("I am in methodI2 of class B1"); } } class C1 implements I2 { public void methodI1() { System.out.println("I am in methodI1 of class C1"); } public void methodI2() { System.out.println("I am in methodI2 of class C1"); } } // class D1 dideklarasikan abstrak karna class ini tidak mencakup semua // method yang ada pada pada kelas interface yang diimplementasikannya abstract class D1 implements I2 { public void methodI1() { } // class ini tidak menimplentasikan methodI2() sehingga dideklasrasikan abstract. } public class InterFaceEx { public static void main(String[] args) { I1 i1 = new B1(); i1.methodI1(); // OK as methodI1 is present in B1 // i1.methodI2(); akan terjadi eror karna pada class B1 tidak terdapat methodI2() // untuk mengatasinya kita gunakan casting untuk merubah interface I1 menjadi I2 ((I2) i1).methodI2(); I2 i2 = new B1(); i2.methodI1(); // OK i2.methodI2(); // OK // kita tidak bisa meuliskan perintah String var = i1.methodA1(); // untuk menampilakn nilai string yang terdapat pada methodA1() // kelas methodA1() tidak terdapat pada interface I1 //maka untuk itu kita lakukan casting untuk merubah i1 menjadi A1 String var2 = ((A1) i1).methodA1(); System.out.println("var2 : " + var2); String var3 = ((B1) i1).methodA1(); System.out.println("var3 : " + var3); String var4 = i1.toString(); System.out.println("var4 : " + var4); String var5 = i2.toString(); System.out.println("var5 : " + var5); I1 i3 = new C1(); String var6 = i3.toString(); System.out.println("var6 : " + var6); // ini akan menmpilkan Object method toString() Object o1 = new B1(); // o1.methodI1(); tidak bisa dikompile karna methodI1() tidak diefinisikan pada class Objek // To solve the probelm we need to downcast o1 reference. We can do it // in the following 4 ways ((I1) o1).methodI1(); // 1 ((I2) o1).methodI1(); // 2 ((B1) o1).methodI1(); // 3 /* * * B1 does not have any relationship with C1 except they are "siblings". * * Well, you can't cast siblings into one another. * */ // ((C1)o1).methodI1(); Produces a ClassCastException } } sumber JavaBeginner.com

Read more at: http://emensite.blogspot.com/2008/12/java-interface.html
Copyright emensite.blogspot.com Under Creative Commons Attribution 3.0

Naruto Shippuden Movie 5 blood prison

Comments List

Koment