Rabu, 04 Mei 2016

INTERFACE



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. 
Contoh Abstract Class :





   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 Interface
Sebuah 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