Class Abstract di Java

Sebuah Class dikatakan abstract jika dan hanya jika minimal mengandung satu method abstract. Method abstract adalah method yang belum didefinisikan isinya, namun method ini sudah dapat dibuat. Method abstract ini nanti akan didefinisikan oleh Class turunannya.
Karena masih abstract maka class Abstract belum bisa dibuat objectnya.

Contoh class Abstract yang mudah dipahami adalah Class Bentuk, class ini mempunyai variable class nama dan warna dan mempunyai method abstract getLuas, kenapa abstract karena kita belum dapat mendefinisikan isi dari method ini karena belum tahu cara mendapatkan luas dari Bentuk yang masih abstract.

Berikut kode programnya :

/**
 *
 * @author rojulman@xbata.com
 */
public abstract class Bentuk {
 private String nama;
 private String warna;

 public Bentuk() {
 }

 public String getNama() {
 return nama;
 }

 public void setNama(String nama) {
 this.nama = nama;
 }

 public String getWarna() {
 return warna;
 }

 public void setWarna(String warna) {
 this.warna = warna;
 }

 public abstract float getLuas();

}

Berikut dua class yang akan mendefinisikan method getLuas dari class Bentuk :

  1. Class PersegiPanjang
    /**
     *
     * @author rojulman
     */
    public class PersegiPanjang extends Bentuk{
     private float panjang;
     private float lebar;
    
     public PersegiPanjang(float panjang, float lebar) {
     this.panjang = panjang;
     this.lebar = lebar;
     }
    
     public float getLuas()
     {
     return this.panjang * this.lebar;
     }
    
    public String toString()
     {
     return "Persegi Panjang Lebar " +  this.lebar
     +" dan panjang " + this.panjang;
     }
    
    }
      
  2. Class Lingkaran
    /**
     *
     * @author rojulman
     */
    public class Lingkaran extends Bentuk{
     private float jari;
    
     public Lingkaran(float jari) {
     this.jari = jari;
     }
    
     public float getLuas()
     {
     return (float) Math.PI * this.jari * this.jari ;
     }
    
     public String toString()
     {
     return "Lingkaran dengan Jari " + this.jari;
     }
    
    }
    
  3. /**
     *
     * @author rojulman
     */
    public class AppBentuk {
    
        public static void main (String args[])
        {
            Bentuk b1 = new PersegiPanjang(6.5f,8f);
            Bentuk b2 = new Lingkaran(8.4f);
            Bentuk b3 = new PersegiPanjang(4.2f,3.f);
    
            Bentuk kumpulan_bentuk[] = {b1,b2,b3};
    
            for (Bentuk bentuk : kumpulan_bentuk) {
                System.out.println( bentuk + " luasnya " + bentuk.getLuas());
            }
    
        }
    
    }
    

Post a Response