Abstraksi Jawa


Kelas dan Metode Abstrak

Abstraksi data adalah proses menyembunyikan detail tertentu dan hanya menampilkan informasi penting kepada pengguna.
Abstraksi dapat dicapai dengan kelas atau antarmuka abstrak (yang akan Anda pelajari lebih lanjut di bab berikutnya).

Kata abstractkuncinya adalah pengubah non-akses, digunakan untuk kelas dan metode:

  • Kelas abstrak: adalah kelas terbatas yang tidak dapat digunakan untuk membuat objek (untuk mengaksesnya harus diwarisi dari kelas lain).

  • Metode abstrak: hanya dapat digunakan di kelas abstrak, dan tidak memiliki badan. Tubuh disediakan oleh subclass (diwarisi dari).

Kelas abstrak dapat memiliki metode abstrak dan reguler:

abstract class Animal {
  public abstract void animalSound();
  public void sleep() {
    System.out.println("Zzz");
  }
}

Dari contoh di atas, tidak mungkin membuat objek dari kelas Hewan:

Animal myObj = new Animal(); // will generate an error

Untuk mengakses kelas abstrak, itu harus diwarisi dari kelas lain. Mari kita ubah kelas Hewan yang kita gunakan dalam bab Polimorfisme menjadi kelas abstrak:

Ingat dari bab Inheritance bahwa kita menggunakan extendskata kunci untuk mewarisi dari sebuah kelas.

Contoh

// Abstract class
abstract class Animal {
  // Abstract method (does not have a body)
  public abstract void animalSound();
  // Regular method
  public void sleep() {
    System.out.println("Zzz");
  }
}

// Subclass (inherit from Animal)
class Pig extends Animal {
  public void animalSound() {
    // The body of animalSound() is provided here
    System.out.println("The pig says: wee wee");
  }
}

class Main {
  public static void main(String[] args) {
    Pig myPig = new Pig(); // Create a Pig object
    myPig.animalSound();
    myPig.sleep();
  }
}

Mengapa Dan Kapan Menggunakan Kelas dan Metode Abstrak?

Untuk mencapai keamanan - sembunyikan detail tertentu dan hanya tampilkan detail penting dari suatu objek.

Catatan: Abstraksi juga dapat dicapai dengan Interfaces , yang akan Anda pelajari lebih lanjut di bab berikutnya.