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 void fungsi();
public void methode();
}
Class Java
@Override
public void fungsi() {
System.out.println("Fungsi java");
}
@Override
public void methode() {
System.out.println("Methode java");
}
}
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...");
}
}
Friday, 1 April 2016
Posted by Naufal Al Farisi