Kelas dan Metode Abstrak Java (Dengan Contoh)

Dalam tutorial ini, kita akan belajar tentang kelas dan metode abstrak Java dengan bantuan contoh. Kami juga akan belajar tentang abstraksi di Jawa.

Kelas Abstrak Java

Kelas abstrak di Java tidak bisa dipakai (kita tidak bisa membuat objek kelas abstrak). Kami menggunakan abstractkata kunci untuk mendeklarasikan kelas abstrak. Sebagai contoh,

 // create an abstract class abstract class Language ( // fields and methods )… // try to create an object Language // throws an error Language obj = new Language(); 

Kelas abstrak dapat memiliki metode reguler dan metode abstrak. Sebagai contoh,

 abstract class Language ( // abstract method abstract void method1(); // regular method void method2() ( System.out.println("This is regular method"); ) )

Untuk mengetahui tentang metode non-abstrak, kunjungi metode Java. Di sini, kita akan belajar tentang metode abstrak.

Metode Abstrak Java

Metode yang tidak memiliki isinya dikenal sebagai metode abstrak. Kami menggunakan abstractkata kunci yang sama untuk membuat metode abstrak. Sebagai contoh,

 abstract void display();

Di sini, display()adalah metode abstrak. Tubuh display()diganti oleh ;.

Jika sebuah kelas berisi metode abstrak, maka kelas tersebut harus dideklarasikan sebagai abstrak. Jika tidak, itu akan menghasilkan kesalahan. Sebagai contoh,

 // error // class should be abstract class Language ( // abstract method abstract void method1(); )

Contoh: Kelas dan Metode Abstrak Java

Meskipun kelas abstrak tidak dapat dibuat instance-nya, kita dapat membuat subkelas darinya. Kami kemudian dapat mengakses anggota kelas abstrak menggunakan objek subkelas. Sebagai contoh,

 abstract class Language ( // method of abstract class public void display() ( System.out.println("This is Java Programming"); ) ) class Main extends Language ( public static void main(String() args) ( // create an object of Main Main obj = new Main(); // access method of abstract class // using object of Main class obj.display(); ) )

Keluaran

 Ini adalah pemrograman Java

Dalam contoh di atas, kami telah membuat kelas abstrak bernama Bahasa. Kelas berisi metode biasa display().

Kami telah membuat kelas Utama yang mewarisi kelas abstrak. Perhatikan pernyataannya,

 obj.display();

Di sini, obj adalah objek dari kelas anak Main. Kami memanggil metode kelas abstrak menggunakan objek objek.

Menerapkan Metode Abstrak

Jika kelas abstrak menyertakan metode abstrak apa pun, semua kelas turunan yang diwarisi dari kelas super abstrak harus menyediakan implementasi metode abstrak. Sebagai contoh,

 abstract class Animal ( abstract void makeSound(); public void eat() ( System.out.println("I can eat."); ) ) class Dog extends Animal ( // provide implementation of abstract method public void makeSound() ( System.out.println("Bark bark"); ) ) class Main ( public static void main(String() args) ( // create an object of Dog class Dog d1 = new Dog(); d1.makeSound(); d1.eat(); ) )

Keluaran

 Saya bisa makan kulit kayu.

Dalam contoh di atas, kami telah membuat kelas Hewan abstrak. Kelas berisi metode abstrak makeSound()dan metode non-abstrak eat().

Kami telah mewarisi Anjing subclass dari superclass Animal. Di sini, subclass Dog menyediakan implementasi untuk metode abstrak makeSound().

Kami kemudian menggunakan objek d1 dari kelas Dog untuk memanggil metode makeSound()dan eat().

Catatan : Jika kelas Dog tidak menyediakan implementasi metode abstrak makeSound(), Dog juga harus dideklarasikan sebagai abstrak. Ini karena subclass Dog mewarisi makeSound()dari Animal.

Mengakses Pembuat Kelas Abstrak

Kelas abstrak dapat memiliki konstruktor seperti kelas reguler. Dan, kita dapat mengakses konstruktor kelas abstrak dari subkelas menggunakan superkata kunci. Sebagai contoh,

 abstract class Animal ( Animal() (… . ) ) class Dog extends Animal ( Dog() ( super();… ) )

Di sini, kami telah menggunakan bagian super()dalam konstruktor Dog untuk mengakses konstruktor Animal.

Perhatikan bahwa superharus selalu menjadi pernyataan pertama dari konstruktor subclass. Kunjungi kata kunci super Java untuk mempelajari lebih lanjut.

Abstraksi Java

Penggunaan utama dari kelas dan metode abstrak adalah untuk mencapai abstraksi di Java.

Abstraksi adalah konsep penting dari pemrograman berorientasi objek yang memungkinkan kita menyembunyikan detail yang tidak perlu dan hanya menampilkan informasi yang diperlukan.

Ini memungkinkan kita untuk mengelola kompleksitas dengan menghilangkan atau menyembunyikan detail dengan ide yang lebih sederhana dan lebih tinggi.

Contoh praktis abstraksi adalah rem sepeda motor. Kami tahu apa fungsi rem. Saat kita menginjak rem, motor akan berhenti. Namun, cara kerja rem dirahasiakan dari kami.

Keuntungan utama dari menyembunyikan kerja rem adalah bahwa sekarang pabrikan dapat menerapkan rem secara berbeda untuk sepeda motor yang berbeda, namun, apa yang dilakukan rem akan sama.

Mari kita ambil contoh yang membantu kita lebih memahami abstraksi Java.

Contoh 3: Abstraksi Java

 abstract class Animal ( abstract void makeSound(); ) class Dog extends Animal ( // implementation of abstract method public void makeSound() ( System.out.println("Bark bark."); ) ) class Cat extends Animal ( // implementation of abstract method public void makeSound() ( System.out.println("Meows "); ) ) class Main ( public static void main(String() args) ( Dog d1 = new Dog(); d1.makeSound(); Cat c1 = new Cat(); c1.makeSound(); ) )

Keluaran :

 Kulit kayu Meows

In the above example, we have created a superclass Animal. The superclass Animal has an abstract method makeSound().

The makeSound() method cannot be implemented inside Animal. It is because every animal makes different sounds. So, all the subclasses of Animal would have different implementation of makeSound().

So, the implementation of makeSound() in Animal is kept hidden.

Here, Dog makes its own implementation of makeSound() and Cat makes its own implementation of makeSound().

Note: We can also use interfaces to achieve abstraction in Java. To learn more, visit Java Interface.

Key Points to Remember

  • We use the abstract keyword to create abstract classes and methods.
  • An abstract method doesn't have any implementation (method body).
  • Kelas yang berisi metode abstrak juga harus abstrak.
  • Kita tidak dapat membuat objek dari kelas abstrak.
  • Untuk mengimplementasikan fitur kelas abstrak, kita mewarisi subkelas darinya dan membuat objek dari subkelas tersebut.
  • Subclass harus mengganti semua metode abstrak dari kelas abstrak. Namun, jika subclass dideklarasikan abstrak, metode abstrak tidak wajib diganti.
  • Kita dapat mengakses atribut statis dan metode kelas abstrak menggunakan referensi kelas abstrak. Sebagai contoh,
     Animal.staticMethod();

Artikel yang menarik...