Belajar Inheritance dan Abstract Class dengan Java

Inheritance merupakan konsep penurunan suatu class (super class) menjadi beberapa class (sub class) lagi.

Abstract Class merupakan class khusus yang digunakan pada proses inheritanceAbstract Class isinya bagian umum dari sub-sub classnya.  Abstract Class di dalamnya ada bisa ada Abstract method yaitu method tanpa implementasi (jadi ya cuman nama method diakhiri tanda ; (semicolon)) maupun tanpa Abstract method.

Abstract Class merupakan class yang tidak dapat diinstantiasi (new namaAbstrakClass).

Abstract Class ini digunakan untuk membuat program lebih simple karena beberapa method yang mempunyai fungsi sama dan implementasinya sedikit berbeda akan dikelompokkan dalam suatu method dalam Abstract Class. Jika fungsinya sama lalu implementasinya sangat berbeda, maka dibuat Abstract Method.

Contoh Abstract Class dalam java adalah seperti ini :

Berikut UMLnya terlebih dahulu

Main

abstract class BangunDatar

abstract class BangunDatar {
	//masing2 bangun datar kan punya rumus luas dan keliling berbeda
	//tapi mereka pasti fungsi yang sama yaitu luas dan keliling
	abstract double luas();
	abstract double keliling();
 
	//kalau misal ada satu fungsi dan implementasi yang sama, bisa langsung ditaruh di 
	//abstract class
	void tampilLuas( double l)
	{
		System.out.println("Luasnya sebesar " + l);
	}
 
	//misal menginginkan static Method, dalam abstract class juga diperbolehkan membuat static method
	static void staticMethod()
	{
		System.out.println("Static Method dapat dipanggil");
	}
}

class Lingkaran

class Lingkaran extends BangunDatar {
//ceritanya kelas ini meng inherits kelas bangundatar
//method yang tadinya abstract di abstract class kudu dibuat implementasinya.
	double jari;
	Lingkaran (double jari){
		this.jari = jari;
	}
	double luas()
	{
		return Math.PI * jari * jari;
	}
	double keliling()
	{
		return Math.PI * 2.0 * jari;
	}
}

class Main nya

class TestInheritance {
	 public static void main(String[] s)
	 {
		Lingkaran li;
		li = new Lingkaran(7.0);
		li.tampilLuas(li.luas());
		BangunDatar.staticMethod();
	 }
}

Referensi :

http://docs.oracle.com/javase/tutorial/java/IandI/abstract.html

1 thought on “Belajar Inheritance dan Abstract Class dengan Java

Leave a Comment