Pengertian Interface
Interface adalah wadah dari
kumpulan method yang bersifat abstrak atau tidak memiliki implementasi. Sedangkan
method yang didefinisikan di dalam
interface tersebut akan diimplementasikan oleh class yang
mengimplementasikan interface tersebut. Interface merupakan bentuk perluasan dari kelas abstrak.
Selain method,
interface juga dapat berisi sekumpulan variable, namun variable yang dideklarasikan
di dalam interface harus bersifat final(nilainya tidak dapat diubah /konstan).
Sebagai contoh :
Dalam kehidupan nyata dapat diketahui ada manusia yang bekerja sebagai tentara, penyanyi, pengacara, dan sebagainya, tentunya manusia-manusia tersebut selain harus memiliki method standard sebagai seorang manusia, juga harus memiliki method yang sesuai dengan pekerjaannya. Dengan demikian untuk membuat objek manusia yang bekerja sebagai penyanyi, harus dibuat kelas yang merupakan turunan kelas manusia yang meng-implementasikan interface penyanyi.
Ciri-ciri dari interface
Method interface tidak punya tubuh, sebuah interface hanya dapat
mendefinisikan konstanta dan interface tidak langsung mewariskan hubungan
dengan class istimewa lainnya, mereka didefinisikan secara independent.
Tidak bisa membuat instance atau objek baru dari sebuah interface.
Ciri umum lain adalah baik interface maupun class dapat mendefinisikan
method. Bagaimanapun, sebuah interface tidak punya sebuah kode implementasi
sedangkan class memiliki salah satunya.
Beberapa perbedaan Interface dan Abstract Class :
- Interface hanya bisa mendefinisikan Method, tidak bisa mengimplementasikan, sedangkan Abstrat
Class bisa mengimplementasikan Method
- Interface tidak boleh terdiri dari field atau property, Abstract Class
bias
- Interface tidak boleh terdiri dari konstruktor dan destruktor, sedangkan
Abstract class bisa:
Abstract class
|
Interface
|
Bisa berisi abstract dan
non-abstract method.
|
Hanya boleh berisi abstract
method.
|
Kita harus menuliskan
sendiri modifiernya.
|
Kita tidak perlu susah2
menulis public abstract di depan nama method. Karena secara implisit,
modifier untuk method di interface adalah public danabstract.
|
Bisa mendeklarasikan constant dan instance
variable.
|
Hanya bisa
mendeklarasikan constant. Secara implisit variable yang
dideklarasikan di interface bersifatpublic, static dan final.
|
Method boleh bersifat static.
|
Method tidak boleh
bersifat static.
|
Method boleh bersifat final.
|
Method tidak boleh
bersifat final.
|
Suatu abstact class hanya
bisa meng-extend satu abstract class lainnya.
|
Suatu interface bisa meng-extend
satu atau lebih interface lainnya.
|
Suatu abstract class hanya
bisa meng-extend satu abstract class dan meng-implement beberapa
interface.
|
Suatu interface hanya bisa
meng-extend interface lainnya. Dan tidak bisa meng-implement class
atau interface lainnya.
|
perbedaan class abstract dan interface
Abstract Class dikatakan Abstract karena
class tersebut tidak diimplementasikan secara langsung di class tersebut.
Melainkan diimplementasikan di class lain yang merupakan class anak dari
abstract class itu. Itulah sebabnya dinamakan abstract class. Berikut perbedaan
antara class abstract dengan interface:
- Abstract class dapat memiliki tipe data dengan semua tipe data, sedangkan interface tipe datanya hanya berupa konstanta
- Method pada abstract class dapat berupa method kongkrit dan method abstract. Sedangkan pada interface semua method harus berupa method abstrack
- Interface Class jelas berbeda dengan abstract class. Karena class ini mengimplementasikan methodnya di class lain dihubungkan dengan kata "implements". Method class interface tadi diimplementasikan dengan nama method yang sama di class yang diimplementasikan.
|
public abstract
class MahlukHidup {
protected boolean BisaTerbang = false; protected String Nama; abstract void bernafas ( ) ; |
Dari contoh di atas dapat kita lihat bahwa
pada abstract class Mahluk hidup terdapat 1 method yang tidak memiliki
implementasi. Implementasi method bernafas nanti akan diimplementasikan di
class anak karena biasanya class abstract dapat menjadi class induk.
Contoh Interface Class :
interface Pekerjaan {
public void namaPekerjaan ( ) ; |
Pada contoh
interface class di atas dapat dilihat perbedaan antara abstract class dan interface
class. Interface class memiliki method yang tidak memiliki im- plementasi.
Pewarisan InterfaceSebuah kelas dapat mewarisi interface dengan menggunakan kata kunci implements, dimana kelas tersebut dapat mewarisi beberapa interface.
Contoh Mewarisi Interface
public class NamaKelas
implements NamaInterface {
public void namaProsedur(){
// isi prosedur }
public TipeData namaFungsi(){
// isi fungsi }}
Pewarisan Antar Interface Interface dapat mewarisi interface lainnya menggunakan kata kunci extends.
Interface dapat mewarisi lebih dari satu interface.
Contoh Pewarisan Antar Interface
public interface NamaInterface
extends InterfaceLain, InterfaceDua {
// isi interface }
0 komentar:
Posting Komentar