Jumat, 17 November 2017

Pengertian dan Contoh Abstract Class, Concrete Class dan Interface

PBO 2017
TEKNIK INFORMATIKA UTM
UNIVERSITAS TRUNOJOYO MADURA

Abstract Class
Abstract Class merupakan Class yang khusus dibuat untuk keperluan inheritance, tujuan dari pembuatan abstract class ini ialah untuk membuat definisi umum bagi class – class yang akan menjadi turunan darinya. Abstrac class dapat digunakan untuk mendefinisikan method yang nantinya akan diimplementasi di Devired class ( kelas turunan atau inherit dari Abstrac Class ).

Concrete Class
Concrete Class merupakan class yang bisa di instansiasikan atau bisa dibuat objeknya. Conrete class bisa didefinisikan class yang nyata, dapat membentuk atau instansiasi object. Object hanya bisa dibuat dari no-abstract class (consrete class). Selain itu, juga dapat menurunkan implementasi dari super class dan sebagai base class pada hierarchical relationship yang juga dibutuhkan class lain untuk mewarisinya. Consrte class merupakan class paling ujung disetiap cabang sebuah pohon.


Listing program

 public class ayam extends binatang {
        private String duaKaki;
        public ayam(String duaKaki){
       this.duaKaki = duaKaki;
        }
        
        @Override
        public void berjalan() {
               // TODO Auto-generated method stub
               System.out.println("Ayam berjalan menggunakan :  "+duaKaki);
        }
        

}

public class harimau extends binatang {
        private String empatKaki;
        public harimau(String empatKaki){
       this.empatKaki = empatKaki;
        }
        
        @Override
        public void berjalan() {
               // TODO Auto-generated method stub
               System.out.println("Harimau berjalan menggunakan :  "+empatKaki);
        }

abstract class binatang {

public abstract void berjalan();
      
       public void need() {
              System.out.println("-\tMembutuhkan makan");
              System.out.println("-\tMembutuhkan oksigen");
       }
}

public class MainBinatang {
      
       public void cekBinatang (binatang hewan){
        hewan.berjalan();
        hewan.need();
    }

       public static void main(String[] args) {
              // TODO Auto-generated method stub
              MainBinatang animal = new MainBinatang();
             
              animal.cekBinatang(new harimau("Empat Kaki"));
             
              System.out.println("_______________________________________\n");
             
              animal.cekBinatang(new ayam("Dua Kaki"));

       }

}


Interface
Interface merupakan kumpulan method yang hanya membuat deklarasi dan struktur method, tanpa detail implementasinya. Sedangkan detail dari method berada pada class yang mengimplementasikan interface tersebut. Interface digunakan jika ingin mengaplikasikan suatu method yang spesifik, yang tidak diperoleh dari proses inheritance. Tipe data yang boleh pada interface hanya tipe data konstan.




Listing program

 public class nama1 implements Nama {
      
       private String namanim;
      
       public void setNama(String nama) {
              this.nama = nama;
       }
      
       public String getNama() {
              return nama;
       }
      
       public void setNim(String nim) {
              this.nim = nim;
       }
      
       public String getNim() {
              return nim;
       }


}

public interface Nama {
       public void setNama(String Nama);
       public String getNama();
       public void setNim(String nim);
       public String getNim();

}

public class nama2 implements Nama {
      
       private String namanim;
      
       public void setNama(String nama) {
              this.nama = nama;
       }
      
       public String getNama() {
              return nama;
       }
      
       public void setNim(String nim) {
              this.nim = nim;
       }
      
       public String getNim() {
              return nim;
       }

}

public static void main(String[] args) {
       Name1 n1 = new Name1();
       n1.setNama("Arif");
       n1.setNim("140411100123");
             
       Name2 n2 = new Name2();
       n2.setNama("Candra");
       2.setNim("130411100124");
             
       System.out.println(n1.getNama());
       System.out.println(n1.getNim());
             
       System.out.println("______________________________\n");
             
       System.out.println(n2.getNama());
       System.out.println(n2.getNim());

   

Kapan menggunakannya ?

Menggunakan interface untuk mendefinisikan method standart yang sama dalam class – class yang berbeda sekali kita telah membuat kumpulan definisi method standar (abstrak), kita dapat menulis method tunggal (spesifik) untuk memanipulasi semua class – class yang mengimplementasikan interface tersebut.


Gunakan class abstract untuk mendefinisikan secara luas sifat – sifat dari class tertinggi dari hirarki OOP, dan gunakan sebclassnya (turunannya / child class) untuk melengkapi deskripsi method dari class abstract.