Halo sobat koding… Baiklah… gw akan lanjutkan konsep OOP yang terakhir yaitu Polymorphism. Apa sih Polymorphism itu ?
Polymorphism artinya banyak bentuk. Apa maksudnya ? Maksudnya Class dapat mempunyai nama method yang sama tapi isi dan bentuknya beda. Polymorphism terbagi menjadi 2 jenis.
Static Polymorphism : menggunakan method overloading.
Dynamic Polymorphism : menggunakan method overriding.
Method Overloading terjadi pada sebuah Class yang mempunyai method dengan nama yang sama tapi isi dan bentuknya beda. Berikut contohnya:
Gw sudah bikin sebuah Class yang diberi nama BaseShape. Disana terlihat ada 2 method dengan nama yang sama tapi bentuk dan fungsinya beda. Method yang pertama fungsinya untuk mendapatkan luas persegi. Parameter yang gw kasih hanya 1 jenis yaitu untuk sisi persegi. Method yang kedua fungsinya untuk mendapatkan luas persegi panjang. Parameter yang gw kasih ada 2 jenis yaitu untuk panjang dan lebar. Walaupun nama method sama tapi fungsi dan parameternya berbeda. Berikut cara menjalankan nya.
Method Overriding terjadi pada Child Class yang dimana nama method sama dengan method yang berada pada Parent Class tapi bentuknya berbeda. Kenapa menyebutkan Child Class dan Parent Class ? Method ini berhubungan dengan konsep Inheritance , method yang bisa diubah bentuknya adalah memiliki access modifier Protected dan Public. Berikut contohnya:
Bisa dilihat gw buat Circle Class denga me-extends dari BaseShape Class. Gw mengubah bentuk method getArea()
yang berada di BaseShape Class. Ketika mengubah method selalu ditambahkan annotation @Override
.
Selain dengan extends, Method Overriding dapat menggunakan interface.
Interface adalah Class kosong yang berisi nama-nama method yang nanti harus diimplementasikan pada Class lain. Dalam pengimplementasiannya bisa saja tiap-tiap Class akan mengimplementasikannya secara berbeda dengan nama method yang sama. Berikut contohnya:
Disini kita buat dulu class untuk interface OtherShape. Gw buat sebuah method untuk mendapatkan keliling lingkaran. Lalu gw mengimplementasikan di Circle Class, seperti berikut:
Cara menggunakan interface dengan cara menambahkan kata kunci implements
dan dilanjutkan dengan nama Interface Class. Interface Class diatas hanya contoh, kalian bisa menambah method lain seperti mehtod void
. Berikut cara menjalankan programnya :
Disini gw buat property untuk diameter. Hal itu gw buat sebagai contoh agar lingkaran hanya punya 1 nilai diameter. Kemudian gw buat Object yang gw kasih nama circle. Gw lalu menambahkan kode untuk menampilkan data luas dan keliling lingkaran.
Oke berarti semua konsep sudah gw jelasin. Mohon maaf kalo kata-kata gw ada yang membingungkan. Contoh yang gw berikan itu hanya sebatas contoh. Kalian bisa mencoba membuat program-program yang lebih baik dengan menggunakan konsep OOP (Object Oriented Programming).
Sekian dulu dari gw, nanti kita akan bertemu lagi di pembahasaan-pembahasaan selanjutnya. Thank you
See you…