Perbedaan Antara Abstract dan Interface Secara Sederhana

Dalam perlajar pemrograman kalian akan banyak mengalami istilah-istilah yang aneh dan sangat membingungkan, bahkan cara implementasinya pun hampir mirip.

Dalam konsep pemrograman OOP (Object Oriented) isitilah-istilah yang akan kalian dengar adalah Encapsulasi, Polymorphism, Override, Overload, Public, Private, Protected, Abstract, Interface.

Baca juga (Mengenal Lebih Dalam Tentang Polymorphism dan Encapsulation)

Banyak dari kalangan programmer-programmer muda yang baru belajar kebingungan penggunaan antara Interface dan Abstract (Saya juga awalnya seperti itu)

Berikut ini akan saya sharing penjelasan yang mampu membuat saya sedikitnya paham perbedaan antara Interface dan Abstract. Singkatnya begini :

Abstract

Abstract secara harfiah artinya belum jelas, masih belum ada bentuk pastinya. Jika di ibaratkan bangun ruang, buat method luasBangunRuang(), pertanyaannya adalah luas bangun ruang apakah itu? segitiga kah, atau persegi. Untuk itu makanya kita buat method tersebut sebagai abstract (tentu classnya juga harus abstract), biarkan nanti class yang meng extends nya medifinisikannya sebagai apa

Class, method, attribute abstract dibuat sebenarnya untuk mendifinisikan hal yang belum pasti itu apa, dan class yang ingin menggunakan class abstract harus meng extends

Interface

banyak orang bertanya-tanya apa sih bedanya abstract dan interface, toh sama sama mengimplementasikan method dari masing-masing class tersebut. Begini, Interface itu juga secara fungsi sama, ada method yang akan di implemetasikan di class superchildnya, tapi BEDA yang peling kelihatan itu adalah kita menggunakan class INTERFACE ITU dengan cara implements bukan dengan extends.

Di stackoverflow saya mendapat penjelasan yang bagus, seperti ini :

An interface is a contract: the guy writing the interface says, “hey, I accept things looking that way“, and the guy using the interface says “Ok, the class I write looks that way“.

Artinya kira-kira begini, interfacenya bicara begini ” hay, saya telah menemukan cara untuk mencari hal seperti itu (red : yang akan dicari)”, kemudian class yang akan membuat (red : sesuatu yang akan dicari) sesuatu itu mengatakan ” Ok, class yang saya akan buat menggunakan cara seperti itu”

artinya, class interface itu menyediakan cara/jalan yang akan mempermudah mencapai tujuan yang akan dibuatnya. Contohnya begini :

Dalam kode diatas, class interface mengatakan bahwa default membuat kendaraan harus bisa jalan (run) dan mampu mencapai titik maksimal (getFuel). Maka class yang akan membuat kendaraan tersebut akan membuat seperti yang sudah disediakan, caranya agar bisa menggunakan cara yang sudah disediakan yaitu dengan cara meng implementes class interface tadi.

Baca juga : Cara Membuat APK di Android Studio Versi Debug dan Release

berbeda dengan abstract, kalo abstract kita belum tau method yang ada di abstract itu kegunaannya untuk apa, tapi sudah disediakan tempatnya, ketika kita akan membuat sesuatu yang sudah dipersiapkan dan kebetulan sudah disediakan methodnya, kita tinggal meng extends class abstract tersebut.

saya sendiri jarang bekerja dengan interface, lebih banyak abstract, interface dikasus saya adalah ketika saya ingin mengambil data dari server berupa json (menggunakan link/url), class interface yang sudah saya buat mengatakan bahwa ” kalo mengambil data dari server urlnya harus seperti ini”, jawaban dari class yang saya buat ” OK, saya akan mengambil data dari server dengan cara seperti itu, saya akan mengimplemen cara tersebut.

Baca juga : Perbedaan TAG, ID dan Class Pada CSS

Semoga ada gambaran setidaknya sedikit ya hehe, karna saya juga tidak bisa menjamin, ketika kalian membaca postingan ini, kalian sudah mengerti dengan benar.

Jika ada yang kurang jelas, bisa ditanyakan disini, sebisanya saya akan jelaskan lebih rinci lagi. Happy coding!! have fun!!

(Visited 115 times, 1 visits today)



Baca juga :


About The Author

Related Posts

Add Comment

Berlangganan Artikel

Untuk mendaftarkan tutorial pemrograman terbaru dari putuguna[dot]com, silakan tuliskan email kalian dibawah ini