Skip to main content

Pengertian Abstract class, Concrete class dan Interface dengan contoh program Java



Abstract Class adalah Class khusus yang membuat definisi umum untuk class - class yang akan menjadi turunanya. Abstract Class dapat digunakan untuk mendefinisikan method yang nantinya akan diimplementasi di Derived Class (kelas turunan / inherit dari Abstract Class ).


Contoh Abstract Class
public class Hewan {
 public String berkaki = "Ya";
 public String habitat = "Darat";
 void berkaki() 
 {
  System.out.println("Mempunyai Kaki ? "+berkaki);
 }
 void habitat() 
 {
  System.out.println("Hidup di "+habitat);
 }
}



 

public class Kakidua extends Hewan{
 void jenis() 
 {
  System.out.println("Berkaki dua");
 }
 void lapar() 
 {
  super.berkaki();
 }
 void habitat() 
 {
  super.habitat();
 }
}


 
public class Kakiempat extends Hewan{
 void jenis() 
 {
  System.out.println("Berkaki empat");
 }
 void berkaki() 
 {
  super.berkaki();
 }
 void habitat() 
 {
  super.habitat();
 }
}

Concrete Class merupakan class yang jelas nilainya untuk membentuk instanisasi object dan hanya dapat di buat dari non-abstract class(concrete class) yang dapat menurunkan implementasi dari super class.

Contoh Concrete Class 

 

public class Ayam extends Kakidua {
 void berkaki() 
 {
  super.lapar();
 }
 void habitat() 
 {
  super.habitat();
 }
 void makanan() 
 {
  System.out.println("Herbivora");
 }
}



 

public class Serigala extends Kakiempat implements Karnivora {
  void berkaki() 
 {
  super.berkaki();
 }
 void habitat() 
 {
  super.habitat();
 }
 public void makanan() 
 {
  System.out.println("Karnivora");
 }
}



 
public class Elang extends Kakidua implements Karnivora {
  void berkaki() 
 {
  super.lapar();
 }
 void habitat() 
 {
  super.habitat();
 }
 public void makanan() 
 {
  System.out.println("Karnivora");
 }
}


 
public class Sapi extends Kakiempat {
 void berkaki() 
 {
  super.berkaki();
 }
 void habitat() 
 {
  super.habitat();
 }
 void makanan() 
 {
  System.out.println("Herbivora");
 }
}



 
public class Kucing extends Kakiempat {
 void berkaki() 
 {
  super.berkaki();
 }
 void habitat() 
 {
  super.habitat();
 }
 void makanan() 
 {
  System.out.println("Omnivora");
 }
}



 
public class Ular extends Hewan implements Karnivora {

 void berkaki() 
 {
  System.out.println("Mempunyai Kaki ? Tidak");
 }
 void habitat() 
 {
  super.habitat();
 }
 public void makanan() 
 {
  System.out.println("Karnivora");
 }
}

Interface adalah sekumpulan method yang hanya memuat deklarasi dan struktur method tanpadetail implementasinya. Interface digunakan untuk ingin mengemplementasikan suatu method yang spesfik, yang tidak di peroleh dari proses inheritance.

Contoh Interface
 
public interface Karnivora {
 public abstract void makanan();
}
Inheritance Tree



Comments

Post a Comment