Kelas abstract merupakan kelas dimana memiliki metode-metode namun tidak dideklarasikan, pendeklarasiannya terjadi pada kelas turunannya. Untuk membuat kelas abstract sama dengan membuat kelas biasanya, namun diawali dengan kunci abstract pada kelasnya dan diawali dengan kata kunci abstract pada metode yang dibuat namun tidak akan dideklrasikan. Metode yang abstract tidak perlu berisikan deklarasinya.
Misal kita membuat kelas abstract Hewan, lalu turunannya Bebek, Ayam dan kambing. Setiap hewan pasti ada suaranya dan setiap hewan mempunyai cirri yang khas dalam nada suara atau bisa kita sebut cara bicaranya. Maka dalam kelas abstract kita boleh membuat metode suara() menjadi abstract.
public abstract class Hewan{
public abstract void suara();
}
public class Bebek extends Hewan{
public void suara(){
System.out.println(“Kwek Kwek Kwek”);
}
}
public class Ayam extends Hewan{
public void suara(){
System.out.println(“Kukkuruyuk”);
}
}
public class Kambing extends Hewan{
public void suara(){
System.out.println(“Embehhhhhhkkk”);
}
}
Kelas turununan dari hewan harus mengoverrite metode suara(), jika tidak akan terjadi error kecuali kelas tersebut juga kelas abstract. Jadi secara umum tujuan dari kelas abstract itu adalah sebagai kelas base dimana kelas base ini berisi metode-metode yang umum untuk kelas kelas turunannya nanti yang kemudian harus di overrite oleh kelas turunannya.