OOP PHP Konsep Polymorphism ( Abstract )


Pada kesempatan sebelumnya kita sudah membahas tentang penggunaan interface di polymorphism, maka pada kali ini kita akan membahas tentang penggunaan abstract untuk konsep polymorphism.

Abstract Class biasanya dibuat untuk diturunkan ke Class lain dengan kata lain Abstract Class akan berisi semua hal paling general dari Class-Class anaknya. Seperti Class pada umumnya, Abstract Class juga bisa mempunyai properties,hak akses,dan method namun Abstract Class tidak bisa dibuatkan Object nya sendiri.

Contoh script :

<?php

abstract class Makhluk_hidup{
    abstract protected function berNafas($menggunakan);
    abstract protected function minum($apaan); //abstract method
}

class Manusia extends Makhluk_hidup{
    public function berNafas($menggunakan){

        return "Manusia Jalan pakai {$pakai}";
    }

    public function minum($apaan){

        return "Manusia biasa minum {$apaan}";
    }
}
class Ikan extends Makhluk_hidup{
    public function berNafas($menggunakan){

        return "Ikan Jalan pakai {$pakai}";
    }

    public function minum($apaan){

        return "Ikan biasa minum {$apaan}";
    }
}

$obj = new Manusia;
echo $obj->minum("Air");
echo $obj->berNafas("hidung");
echo "<br>";
$obj = new Ikan;
echo $obj->minum("Air");
echo $obj->berNafas("insang");

?>

Pada contoh diatas bisa kita lihat berbeda dengan interface yang menggunakan implements untuk pemanggilannya sedangkan untuk abstract untuk pemanggilannya menggunakan extends.Dalam polymorphism penggunaan abstract dan interface di gunakan sesuai dengan design oop yang kita, kita juga bisa menggabungkan keduannya.

Postingan terkait:

Belum ada tanggapan untuk "OOP PHP Konsep Polymorphism ( Abstract )"

Post a Comment