ABSTRACT
Abstraction adalah proses untuk menyembunyikan detail implementasi dari user sehingga hanya sisi fungsionalitas saja yang ditampilkan, atau dengan kata lain user akan menerima informasi mengenai apa yang dapat dilakukan oleh suatu objek namun user tidak akan mengetahui bagaimana objek itu melakukannya.
Apa sih Class Abstrak? 🤔
Class abstrak adalah class yang masih tidak jelas atau bentuknya memang abstrak. Karena bentuknya saja abstrak jadi tidak bisa dibuat menjadi objek
Sebuah class abstrak bisa disebut abstrak harus memiliki satu atau lebih method abstrak. jadi method abstrak tidak memiliki implentasi
Paham ? Tidak ya?
Oke jadi method abstrak itu method tanpa isi, hanya ada nama saja dan class yang menggunakan method ini, secara otomatis akan menjadi class abstrak
// ini abstrak method
void sayHello();
// ini bukan abstrak method karena
// punya implementasi di body method
void greeting(){
System.out.println("Hello Java");
}
Kenapa Memakai Class Abstrak? 🤔
Kita tahu, class abstrak adalah kelas murni (tanpa objek) dan tidak boleh memiliki objek (tidak boleh ada instansiasi) sehingga belum bisa digunakan secara langsung.
Kelas ini digunakan sebagai basis bagi penurunan kelas kelas lainnnya, sehingga tidak dapat diinstansiasi secara langsung menjadi objek.
Karena itu, agar class abstrak dapat digunakan, maka ia harus dibentuk dulu konkritnya. Caranya bagaimana?
Cara membuat class abstrak menjadi konkrit adalah dengan membuat implementasi dari method-method yang masih abstrak. Ini bisa kita lakukan dengan pewarisan (inheritance). Method-method yang abstract akan diimplementasikan oleh kelas turunannya melalui override.
B 🙄: "Ohh jadi begitu ya.."
A😎: "Iya Adek"
Nih Aku Kasih Contoh Program Class Abstrak 😎
Pertama Bikin Class Induknya dulu seperti ini 😏
package pkgabstract;
public abstract class Abstract {
String Color; int Harga; String Merk;
public String getColor() { return Color; }
public void setColor(String Color) { this.Color = Color; }
public int getHarga() { return Harga; }
public void setHarga(int Harga) { this.Harga = Harga; }
public String getMerk() { return Merk; }
public void setMerk(String Merk) { this.Merk = Merk; } abstract int getCC();}
Setelah itu bikin kelas Anaknya 😏
package pkgabstract;
public class Yamaha extends Abstract { private double D; private double L;
public double getD() { return D; }
public void setD(double D) { this.D = D; }
public double getL() { return L; }
public void setL(double L) { this.L = L; } @Override int getCC(){ return (int) (3.14*(D*D) * L)/1000 ; }}
package pkgabstract;
public class Honda extends Abstract { private double D; private double L;
public double getD() { return D; }
public void setD(double D) { this.D = D; }
public double getL() { return L; }
public void setL(double L) { this.L = L; } @Override int getCC(){ return (int) (3.14*(D*D) * L)/1000 ; } }
package pkgabstract;
public class Suzuki extends Abstract { private double D; private double L;
public double getD() { return D; }
public void setD(double D) { this.D = D; }
public double getL() { return L; }
public void setL(double L) { this.L = L; } @Override int getCC(){ return (int) (3.14*(D*D) * L)/1000 ; }}
Nah yang terakhir tinggal buat class Main untuk pemanggilan 😎
package pkgabstract;
public class MainNih { public static void main(String[] args){ Yamaha A = new Yamaha(); Honda B = new Honda(); Suzuki C = new Suzuki(); A.setMerk("N MAX"); A.setColor("Black"); A.setD(29); A.setL(60); A.setHarga(25000000); B.setMerk("TIGER"); B.setColor("HEREX"); B.setD(31.75); B.setL(62.2); B.setHarga(7500000); C.setMerk("SATRIA FU"); C.setColor("PINK"); C.setD(31); C.setL(48.8); C.setHarga(15000000); System.out.println("SPESIFIKASI MOTOR"); System.out.println("==========================="); System.out.println(); System.out.println("Merk Motor : "+A.getMerk()); System.out.println("Warna Motor : "+A.getColor()); System.out.println("Kapasitas Mesin : "+A.getCC()+"cc"); System.out.println("Harga Motor : "+A.getHarga()); System.out.println(); System.out.println("*"); System.out.println(); System.out.println("Merk Motor : "+B.getMerk()); System.out.println("Warna Motor : "+B.getColor()); System.out.println("Kapasitas Mesin : "+B.getCC()+"cc"); System.out.println("Harga Motor : "+B.getHarga()); System.out.println(); System.out.println("*"); System.out.println(); System.out.println("Merk Motor : "+C.getMerk()); System.out.println("Warna Motor : "+C.getColor()); System.out.println("Kapasitas Mesin : "+C.getCC()+"cc"); System.out.println("Harga Motor : "+C.getHarga()); System.out.println(); System.out.println("=========================="); }}
Output
Gampang lah ya masa Ngga.. Ya kan.. 😎
terima kasih
Moh. Shohibul Wafa, S. M. (2022). MODUL 9 – MENGENAL CLASS
ABSTRAK. Modul Praktikum Algoritma dan Pemrograman 2 Sistem Informasi
UNIPDU Jombang, 1-8.
Muhardian, A. (2020, Januari 05). Tutorial Java OOP: Mengenal Class Abstrak dan Cara Pakainya. Retrieved from PetaniKode: https://www.petanikode.com/java-oop-abstract/