Kelas dan Kaedah Abstrak Java (Dengan Contoh)

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

Kelas Abstrak Jawa

Kelas abstrak di Jawa tidak dapat dibuat contoh (kita tidak dapat membuat objek kelas abstrak). Kami menggunakan abstractkata kunci untuk menyatakan 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 boleh mempunyai kaedah biasa dan kaedah abstrak. Sebagai contoh,

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

Untuk mengetahui kaedah bukan abstrak, lawati kaedah Java. Di sini, kita akan belajar mengenai kaedah abstrak.

Kaedah Abstrak Jawa

Kaedah yang tidak mempunyai badannya dikenali sebagai kaedah abstrak. Kami menggunakan abstractkata kunci yang sama untuk membuat kaedah abstrak. Sebagai contoh,

 abstract void display();

Di sini, display()adalah kaedah abstrak. Badan display()digantikan oleh ;.

Sekiranya kelas mengandungi kaedah abstrak, maka kelas tersebut harus dinyatakan abstrak. Jika tidak, ia akan menghasilkan ralat. Sebagai contoh,

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

Contoh: Kelas dan Kaedah Abstrak Java

Walaupun kelas abstrak tidak dapat dibuat, kita dapat membuat subkelas daripadanya. Kita kemudian dapat mengakses ahli 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(); ) )

Pengeluaran

 Ini adalah pengaturcaraan Java

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

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

 obj.display();

Di sini, obj adalah objek utama kelas kanak-kanak. Kami memanggil kaedah kelas abstrak menggunakan objek obj.

Melaksanakan Kaedah Abstrak

Sekiranya kelas abstrak merangkumi kaedah abstrak, maka semua kelas anak yang diwarisi dari superclass abstrak mesti memberikan pelaksanaan kaedah 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(); ) )

Pengeluaran

 Kulit kayu saya boleh makan.

Dalam contoh di atas, kami telah membuat haiwan kelas abstrak. Kelas mengandungi kaedah abstrak makeSound()dan kaedah bukan abstrak eat().

Kami telah mewarisi Anjing subkelas dari Animal superclass. Di sini, Dog subkelas menyediakan pelaksanaan untuk kaedah abstrak makeSound().

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

Catatan : Sekiranya kelas Anjing tidak memberikan pelaksanaan kaedah abstrak makeSound(), Anjing juga harus dinyatakan sebagai abstrak. Ini kerana Dog subclass mewarisi makeSound()dari Animal.

Mengakses Pembina Kelas Abstrak

Kelas abstrak boleh mempunyai pembina seperti kelas biasa. Dan, kita boleh mengakses pembina kelas abstrak dari subkelas menggunakan superkata kunci. Sebagai contoh,

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

Di sini, kami telah menggunakan bahagian super()dalam konstruktor Anjing untuk mengakses pembina Haiwan.

Perhatikan bahawa superpenyataan subkelas harus selalu menjadi pernyataan pertama. Lawati kata kunci super Java untuk mengetahui lebih lanjut.

Pengambilan Jawa

Penggunaan utama kelas dan kaedah abstrak adalah untuk mencapai pengabstrakan di Jawa.

Abstraksi adalah konsep penting pengaturcaraan berorientasikan objek yang membolehkan kita menyembunyikan butiran yang tidak perlu dan hanya menunjukkan maklumat yang diperlukan.

Ini membolehkan kita menguruskan kerumitan dengan menghilangkan atau menyembunyikan perincian dengan idea yang lebih sederhana dan lebih tinggi.

Contoh praktikal abstraksi ialah brek motosikal. Kami tahu apa yang dilakukan oleh brek. Apabila kita menggunakan brek, motor akan berhenti. Walau bagaimanapun, kerja-kerja brek tetap tersembunyi dari kami.

Kelebihan utama menyembunyikan kerja brek adalah bahawa sekarang pengeluar dapat mengimplementasikan brek secara berbeza untuk motosikal yang berbeza, namun, apa yang dilakukan brek akan sama.

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

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 mengandungi kaedah abstrak juga harus abstrak.
  • Kami tidak dapat membuat objek kelas abstrak.
  • Untuk melaksanakan ciri kelas abstrak, kami mewarisi subkelas daripadanya dan membuat objek subkelas.
  • Subkelas mesti mengatasi semua kaedah abstrak kelas abstrak. Namun, jika subkelas dinyatakan abstrak, tidak wajib mengganti kaedah abstrak.
  • Kita boleh mengakses atribut dan kaedah statik kelas abstrak menggunakan rujukan kelas abstrak. Sebagai contoh,
     Animal.staticMethod();

Artikel menarik...