Izinkan saya memberi tahu Anda konsep dasar dulu
Dalam bahasa Java, kelas abstrak dan antarmuka adalah dua mekanisme yang mendukung definisi kelas abstrak. Justru karena adanya dua mekanisme inilah Java diberikan kemampuan yang berorientasi objek yang kuat. Kelas abstrak dan antarmuka memiliki kesamaan yang sangat besar dalam mendukung definisi kelas abstrak, dan bahkan dapat digantikan oleh satu sama lain. Oleh karena itu, banyak pengembang tampaknya memiliki pilihan sewenang -wenang untuk kelas abstrak dan antarmuka saat mendefinisikan kelas abstrak. Faktanya, masih ada perbedaan besar di antara keduanya. Pilihan mereka bahkan mencerminkan apakah pemahaman tentang esensi bidang masalah dan pemahaman tentang niat desain benar dan masuk akal.
Kelas abstrak dan antarmuka keduanya digunakan dalam bahasa Java untuk melakukan kelas abstrak (kelas abstrak dalam artikel ini tidak diterjemahkan dari kelas abstrak, itu mewakili tubuh abstrak, dan kelas abstrak adalah metode yang digunakan dalam bahasa Java untuk mendefinisikan kelas abstrak. Harap perhatikan perbedaan). Jadi apa itu kelas abstrak? Manfaat apa yang dapat digunakan kelas abstrak kepada kami?
Dalam konsep yang berorientasi objek, kita tahu bahwa semua objek digambarkan oleh kelas, tetapi sebaliknya tidak. Tidak semua kelas digunakan untuk menggambarkan objek (kelas konkret). Jika kelas tidak berisi informasi yang cukup untuk menggambarkan objek konkret, kelas seperti itu adalah kelas abstrak. Kelas abstrak sering digunakan untuk mewakili konsep abstrak yang kita peroleh dalam menganalisis dan merancang bidang masalah, dan merupakan abstraksi dari serangkaian konsep konkret yang tampak berbeda tetapi pada dasarnya sama. Misalnya: Jika kami mengembangkan perangkat lunak pengeditan grafis, kami akan menemukan bahwa ada konsep khusus seperti lingkaran dan segitiga di bidang masalah. Mereka berbeda, tetapi mereka semua termasuk dalam konsep bentuk. Konsep bentuk tidak ada di bidang masalah. Ini adalah konsep abstrak. Justru karena konsep abstrak tidak memiliki konsep konkret yang sesuai di bidang masalah yang digunakan kelas abstrak untuk mewakili konsep abstrak tidak dapat dipakai.
Fungsi dan antarmuka virtual sering digunakan dalam pengembangan Java. Apa perbedaan antara keduanya?
Abstrak: Hanya satu kelas induk yang dapat diwarisi dalam subkelas
Antarmuka: Subkelas dapat menerapkan beberapa antarmuka
Jadi, kapan menggunakan Abstrak dan kapan menggunakan antarmuka?
Ketika subkelas dan kelas induk berada dalam suatu hubungan, misalnya, orang Asia adalah seseorang, maka subkelas Asia dapat mewarisi kelas orang tua seseorang.
Ketika subclass dan kelas induk seperti hubungan, misalnya, Superman di Amerika seperti Superman. Kemampuan Superman tidak semua orang, jadi mereka tidak semua atribut. Kami tidak dapat menghubungkan kekuatan super dengan kelas orang tua manusia. Saat ini, kita dapat menggunakan antarmuka
Contoh kode:
Publik Abstrak Kelas Man {public abstrak void eat ();} antarmuka publik superpower {public void superpower ();} kelas publik asiaman memperluas pria {@overridepublic eat () {System.out.println ("Asians Eat With ChiPsticks");} {Public Class Public AMERMANSUPERMMAN Memperluas Manusia Implements Publicpower {Public Class Public Class American) {System.out.println("American Superman can fly");}@Overridepublic void eat() {System.out.println("American eats with knife and fork");}}public static void main(String[] args) {Man anAsiaMan = new AsiaMan();AmericanSuperMan anAmericanSuperMan = new Americansuperman (); anasiaman.eat (); anamericansuperman.eat (); anamericansuperman.superpower ();}Hasil Menjalankan:
Orang Amerika makan dengan pisau dan garpu superman Amerika dapat menerbangkan orang Asia makan dengan sumpit
Penggunaan abstrak dan antarmuka yang benar bermanfaat untuk meningkatkan keterbacaan kode. Ketika orang melihat diperpanjang, mereka akan tahu apa itu. Ketika mereka melihat implementasi, mereka dapat mengetahui fitur apa yang dimiliki kelas ini seperti.