Abstrak kelas dan antara muka kedua-duanya digunakan terutamanya untuk abstraksi, tetapi mereka sangat berbeza antara satu sama lain. Kedua-duanya adalah sebahagian teras Jawa tetapi menggunakan aplikasi sendiri. Walaupun kedua-dua istilah mungkin sama dengan satu sama lain, mereka tidak boleh digunakan secara bergantian.
Terdapat perbezaan yang signifikan antara kedua-dua. Walaupun kaedah antara muka abstrak secara lalai, abstrak boleh mengandungi kedua-dua kaedah abstrak dan bukan abstrak. Nah, sejak Java 8, antara muka juga mempunyai pelaksanaan kaedah dan mereka boleh mempunyai kedua-dua kaedah statik dan lalai di Jawa. Mari kita perhatikan perbezaan antara kedua secara terperinci.
Kelas abstrak di Jawa adalah kelas yang diisytiharkan abstrak - ia mungkin atau mungkin tidak mengandungi kaedah abstrak. Ia agak serupa dengan antara muka Java kecuali fakta bahawa ia boleh mengandungi pelaksanaan kaedah lalai. Seperti dalam pengaturcaraan berorientasikan objek, abstraksi dalam Java dicapai dengan menggunakan kelas abstrak dan antara muka. Di Jawa, abstrak bermaksud menyembunyikan butiran yang tidak relevan daripada pengguna untuk memberi tumpuan hanya kepada butir-butir penting untuk meningkatkan kecekapan dengan itu mengurangkan kerumitan. Kata kunci "abstrak" digunakan untuk membuat kelas abstrak sebelum kata kunci kelas dalam deklarasi kelas.
Kelas abstrak mungkin atau tidak boleh mengandungi kaedah abstraksi (kaedah tanpa badan), tetapi jika kelas mempunyai sekurang-kurangnya satu kaedah abstraksi, ia mesti diisytiharkan sebagai abstrak. Walau bagaimanapun, kaedah bukan abstrak hanya boleh digunakan dalam kelas abstrak, tetapi hanya untuk melaksanakan kelakuan lalai. Kaedah dalam kelas abstrak boleh mempunyai pengubah akses seperti peribadi, awam, statik dan dilindungi, bergantung pada tahap penglihatan. Kelas abstrak tidak boleh instantiated dan ia tidak memberikan abstraksi 100 peratus kerana fakta bahawa ia boleh mempunyai kaedah konkrit.
Antara muka walaupun kelihatan seperti kelas, tidak. Kerana Java tidak menyokong banyak warisan, kadang kala merupakan antara muka yang sesuai untuk menyediakan asas bagi hierarki kelas. Antara muka adalah lebih daripada satu pelan tindakan kelas yang juga digunakan untuk mencapai abstraksi di Jawa. Ia mengandungi kaedah abstrak dan pemalar statik. Secara ringkas, antara muka adalah koleksi kaedah abstrak yang digunakan untuk menentukan tingkah laku yang perlu dilaksanakan oleh kelas. Tidak seperti kelas abstrak, antara muka menyediakan abstraksi penuh di Jawa. Ia boleh mempunyai kedua-dua kaedah dan pembolehubah seperti kelas, namun kaedah yang diisytiharkan dalam antara muka adalah abstrak secara lalai.
Kelas Abstrak | Antara muka |
Kata kunci abstrak digunakan untuk membuat kelas abstrak dan ia boleh digunakan dengan kaedah. | Kata kunci antara muka digunakan untuk membuat antara muka tetapi tidak boleh digunakan dengan kaedah. |
Kelas boleh memanjangkan hanya satu kelas abstrak. | Kelas boleh melaksanakan lebih daripada satu antara muka. |
Kelas abstrak boleh mempunyai kedua-dua kaedah abstrak dan bukan abstrak. | Antara muka hanya boleh mempunyai kaedah abstrak. |
Pembolehubah tidak muktamad secara lalai. Ia mungkin mengandungi pembolehubah bukan akhir. | Pembolehubah adalah muktamad secara lalai dalam antara muka. |
Kelas abstrak boleh menyediakan pelaksanaan antara muka. | Antara muka tidak dapat menyediakan pelaksanaan kelas abstrak. |
Ia boleh mempunyai kaedah dengan pelaksanaan. | Ia menyediakan abstraksi mutlak dan tidak boleh mempunyai pelaksanaan kaedah. |
Ia boleh mempunyai pengubah akses akses awam, peribadi, statik dan dilindungi. | Kaedah secara tersirat awam dan abstrak dalam antara muka Java. |
Ia tidak menyokong pelbagai warisan. | Ia menyokong pelbagai warisan. |
Ia sesuai untuk perspektif penggunaan semula dan evolusi kod. | Ia sesuai untuk pengisytiharan Jenis. |
Kedua-dua kelas dan antara muka abstrak digunakan untuk abstraksi; Walau bagaimanapun, mereka mempunyai bahagian perbezaan yang saksama. Perbezaan utama antara kedua-duanya didorong oleh kaedah abstraksi. Walaupun bekas mungkin atau mungkin tidak mempunyai kaedah abstrak, yang kedua secara implisit abstrak. Kelas abstrak boleh mempunyai kedua-dua kaedah abstrak dan bukan abstrak. Antara muka, sebaliknya, hanya boleh mempunyai kaedah abstrak, oleh itu ia tidak dapat melaksanakan, yang semestinya satu antara muka tidak boleh mempunyai kaedah tidak abstrak. Kelas abstrak tidak boleh ditiru yang melarang penciptaan objek. Antara muka, sebaliknya, mungkin kelihatan seperti kelas, tetapi tidak.