Archive for April 2016

Perbedaan antara abstract class dan interface

Abstract Class

Abstract class didefinisikan sebagai class yang tidak bisa digunakan untuk membuat object. Abstract class dibuat ketika adanya hal yang cukup kompleks terjadi di saat pendefinisian di tahap awal pembangunan program.
Sifat:
Ø  Tidak dapat diinstansiasi
Ø  Dapat digunakan untuk diturunkan ke dalam bentuk kelas konkret
Ø  Dapat digunakan untuk diturunkan ke kelas abstrak berikutnya
Ø  Dideklarasikan menggunakan keyword abstract.
Kondisi Penggunaan
·         Mendeklarasikan struktur dari suatu abstraksi tanpa memberikan implementasi
·         Mendefenisikan generalized form yang akan di-share ke setiap subclass
·         Memberikan kebebasan pada subclass untuk memberikan prosedur details

Interface

Interface adalah prototype kelas yang berisi definisi konstanta dan deklarasi method (hanya nama method tanpa definisi kode programnya). Interface digunakan untuk menyatakan spefisikasi fungsional beberapa kelas secara umum.
Aturan Interface
v  Semua atribut adalah public, static dan final (semua atribut bertindak sebagai konstanta)
v  Semua method adalah abstract dan public
v  Tidak boleh ada deklarasi konstruktor
Ciri Ciri
§  Method Interface tidak punya tubuh, sebuah interface hanya dapat mendefinisikan konstanta dan interface langsung mewariskan hubungan dengan class istimewa lainya, mereka didefinisikan secara independent.
§  Tidak bisa membuat instance atau objek baru dari sebuah interface.
§  Baik interface maupun class dapat mendefinisikan method.


Perbedaan Menonjol antara Abstract Class dan Interface

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.


Contoh Interface

Class InterfaceBahasaProgram

 public interface InterfaceBahasaProgram {
    public void fungsi();
    public void methode();    
}


Class Java

 public class Java implements InterfaceBahasaProgram{
    @Override
    public void fungsi() {
        System.out.println("Fungsi java");
    }
    @Override
    public void methode() {
        System.out.println("Methode java");
    }
}
  
Class Main
 public class Main {
    public static void main(String[] args){
     
        InterfaceBahasaProgram bahasaJava = new Java();
        bahasaJava.fungsi();  
        bahasaJava.methode();  
    }
}

Contoh Abstract
public class TestMobil {
   public static void main(String[] args){
      Mobil mobil = new Mobil(){
        public void injakPedalGas(){
        System.out.println("Mobil berjalan...");
      }
    }
    Kijang kijang = new Kijang();
    Escudo escudo = new Escudo();
    BMW bmw = new BMW();
  
    mobil.injakPedalGas();
  
    mobil = kijang;
    mobil.injakPedalGas();
  
    mobil = escudo;
    mobil.injakPedalGas();
  
    mobil = bmw;
    mobil.injakPedalGas();
  }
}



abstrak public class Mobil {
                public void injakPedalGas();
                public void injakRem(){
                System.out.println(“Mobil berhenti!”);
                }             
}
public class Kijang extends Mobil{
                public void injakPedalGas(){
                System.out.println("Mobil Melaju dengan kecepatan 80 Km/jam...");
                }
}
public class BMW extends Mobil {
                public void injakPedalGas(){
    System.out.println("Mobil Melaju dengan kecepatan 100 Km/jam...");
                }
}





Unduh Adobe Flash player Unduh Adobe Flash player

Popular Post

Hari Ini Anda Pengunjung Ke-

Labels

Tips (5) Cyber (2) Japan (2) JKT48 (1) Software (1)

Blog Archive

- Copyright © Mbribik -Metrominimalist- Powered by Blogger - Designed by Undetected41 -