Rabu, 04 Mei 2016

Belajar Object Oriented Programming (OOP) PHP, Pewarisan Interface


Pewarisan Interface




Pewarisan

Dalam OOP, kita dapat menciptakan objek baru yang diturunkan dari objek lain. Objek baru ini sering disebut dengan objek turunan(derived class) sedang objek induknya sering disebut dengan ancestor(base class). Sifat yang terkandung pada objek turunan adalah sifat hasil pewarisan dari sifat-sifat yang terdapat pada objek induk. Maka dari itu proses seperti ini sering dikenal dengan istilah pewarisan(Inheritance)




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 menunjukan 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. Interface kita gunakan 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.


Variable pada interface akan memiliki aturan static dan final sedangkan method akan memiliki aturan public dan abstract. Hal ini terjadi setelah proses kompilasi seperti yang terlihat pada gambar.
Perubahan Aturan Setelah Kompilasi Pada Interface

Hubungan Antara Class dan Interface

Seperti yang terlihat pada gambar dibawah ini, sebuah class melakukan extends terhadap class  lain, sebuah interface melakukan extends terhadap interface lain, namun sebuah class melakukan implements pada interface.
 
              Hubungan Interface dan Class
Perhatikan kode interface CetakLaporan:
public interface CetakLaporan {
    public void cetakA4();
    public void cetakA3();
}
Interface CetakLaporan diimplementasikan pada class LaporanTahunan
public class LaporanTahunan implements CetakLaporan{
    public void cetakA4(){
        System.out.println("Cetak Laporan di A4");
    }
    public void cetakA3(){
        System.out.println("Cetak Laporan di A3");
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        
        LaporanTahunan lt = new LaporanTahunan();
        lt.cetakA3();
        lt.cetakA4();
    }
}

Pewarisan Pada Interface

Jika sebuah class tidak diperkenankan melakukan pewarisan (extends) lebih dari 1 class, maka interface diperbolehkan melakukan hal tersebut. Namun sebuah class diperbolehkan melakukan implementasi terhadap lebih dari 1 interface.

                                                   Pewarisan Banyak Pada Java
Perhatikan kode program berikut ini
public interface TampilLaporan {
    public void tampilWeb();
    public void tampilMobile();
}
public class LaporanTahunan implements CetakLaporan, TampilLaporan{
    public void cetakA4(){
        System.out.println("Cetak Laporan di A4");
    }
    public void cetakA3(){
        System.out.println("Cetak Laporan di A3");
    }
    public void tampilWeb(){
        System.out.println("Tampil di Monitor");
    }
    public void tampilMobile(){
        System.out.println("Tampil di Handphone");
    }
    
    
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        
        LaporanTahunan lt = new LaporanTahunan();
        lt.cetakA3();
        lt.cetakA4();
        lt.tampilMobile();
        lt.tampilWeb();
    }
}
Contoh kode program interface melakukan multiple pewarisan.
public interface Laporan extends CetakLaporan, TampilLaporan{
    public void exportExcel();
 
}

Tidak ada komentar:

Posting Komentar