Inheritance dan Interface OOP (PHP)

Perbedaan Interface dan Inheritance (PHP programing)
saat kita mendeklarasikan beberapa class anggaplah kelas propinsi, kotakabupaten, dan kecamatan
setiap kelas yang kita sebutkan diatas memiliki beberapa fungsi yang harus dideklarasikan
seperti fungsi input, update, delete
tetapi mungkin saja class kotakabupaten memiliki fungsi lain yaitu fungsi view_kabupaten_propinsi

maka si fungsi input, update, delete kita daftarkan dalam interface dan fungsi view_kabupaten_propinsi kita deklarasikan dalam class kotakabupaten

sementara setiap class yang ingin dibuat (propinsi, kotakabupaten, dan kecamatan) memiliki sebuah fungsi __construct yang sama untuk semua kelas ini maka kita dapat membuat menjadi seperti ini

# interface
class Regional {
    function input();
    function update();
    function delete();
}

# Inheritance
class Daerah {
    function __construct(){
        // ... code construct declare here
    }
}

# class using inheritance and interface
class Propinsi extends Daerah interface Regional {
    function input(){
        // declare code input for propinsi
    }
    function update(){
        // declare code update for propinsi
    }
    function delete(){
        // declare code delete for propinsi
    }
    
}

$p = new Propinsi();

 

class propinsi akan menggunakan fungsi __construct yang diturunkan dari class Daerah

sementara jika kelas kabupaten kota memiliki sebuah fungsi berbeda dari class yang lain yaitu view_kabupaten_propinsi kita dapat membuat nya menjadi

class Kabkota extends Daerah interface Regional {
    function input(){
        // declare code input for kabkota
    }
    function update(){
        // declare code update for kabkota
    }
    function delete(){
        // declare code delete for kabkota
    }
    // khusus untuk class Kabkota
    function view_kabupaten_propinsi(){
        // declare here
    }
}


dengan cara seperti ini kita telah mengurangi pengulangan penulisan fungsi yang identik
dan menjamin sebuah interface yang sama pada kelas2 yang dibuat

Published by

G3n1k

just to remember what i had known :)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s