Perbedaan antara kelas abstrak dan antarmuka di java

Perbedaan antara kelas abstrak dan antarmuka di java

Kelas abstrak dan antarmuka keduanya terutama digunakan untuk abstraksi, namun mereka sangat berbeda satu sama lain. Keduanya adalah bagian inti dari Java tetapi memiliki penggunaan aplikasi sendiri. Meskipun kedua istilah mungkin identik satu sama lain, mereka tidak dapat digunakan secara bergantian.

Ada perbedaan yang signifikan antara keduanya. Sementara metode antarmuka abstrak secara default, abstrak dapat berisi metode abstrak dan non-abstrak. Nah, karena Java 8, antarmuka juga memiliki implementasi metode dan mereka dapat memiliki metode statis dan default di java. Mari kita pelajari perbedaan antara keduanya secara rinci.

Apa itu kelas abstrak di java?

Kelas abstrak di Java adalah kelas yang dinyatakan abstrak - mungkin atau mungkin tidak mengandung metode abstrak. Ini sangat mirip dengan antarmuka java kecuali fakta bahwa ia dapat berisi implementasi metode default. Seperti dalam pemrograman berorientasi objek, abstraksi di Java dicapai dengan menggunakan kelas dan antarmuka abstrak. Di Java, abstraksi berarti menyembunyikan detail yang tidak relevan dari pengguna untuk fokus hanya pada detail penting untuk meningkatkan efisiensi sehingga mengurangi kompleksitas. Kata kunci "abstrak" digunakan untuk membuat kelas abstrak tepat sebelum kata kunci kelas dalam deklarasi kelas.

Kelas abstrak mungkin atau mungkin tidak mengandung metode abstraksi (metode tanpa tubuh), tetapi jika kelas memiliki setidaknya satu metode abstraksi, itu harus dinyatakan abstrak. Namun, metode non-abstrak hanya dapat juga digunakan dalam kelas abstrak, tetapi hanya untuk mengimplementasikan perilaku default. Metode dalam kelas abstrak dapat memiliki pengubah akses seperti pribadi, publik, statis dan terlindungi, tergantung pada tingkat visibilitas. Kelas abstrak tidak dapat dipakai dan tidak memberikan abstraksi 100 persen karena fakta bahwa ia dapat memiliki metode konkret.

Apa itu antarmuka?

Antarmuka meskipun terlihat seperti kelas, tidak. Karena Java tidak mendukung banyak warisan, antarmuka terkadang sangat ideal untuk menyediakan hirarki basis untuk hierarki kelas. Antarmuka lebih merupakan cetak biru kelas yang juga digunakan untuk mencapai abstraksi di java. Ini berisi metode abstrak dan konstanta statis. Secara sederhana, antarmuka adalah kumpulan metode abstrak yang digunakan untuk menentukan perilaku yang harus diimplementasikan kelas. Tidak seperti kelas abstrak, antarmuka memberikan abstraksi penuh di java. Itu dapat memiliki metode dan variabel seperti kelas, namun metode yang dinyatakan dalam antarmuka abstrak secara default.

Perbedaan antara kelas abstrak dan antarmuka di java

  1. "Multiple Warisan" kelas abstrak dan antarmuka di Java - Terlepas dari kenyataan bahwa kelas abstrak dan antarmuka terutama digunakan untuk abstraksi, mereka sangat berbeda satu sama lain. Sementara kelas abstrak adalah kelas, antarmuka adalah antarmuka. Artinya sementara antarmuka hanya dapat memperluas antarmuka Java lain, kelas abstrak dapat mengimplementasikan beberapa warisan di Java. Nah, Java tidak mendukung banyak warisan tetapi orang dapat menerapkan beberapa warisan di Java.
  2. "Jenis metode" kelas abstrak dan antarmuka di java - Perbedaan utama kedua antara keduanya adalah bahwa sementara antarmuka hanya dapat memiliki metode abstrak, kelas abstrak dapat memiliki metode abstrak dan non-abstrak. Namun, karena Java 8, antarmuka juga dapat memiliki metode default dan statis.
  3. “Pengubah Akses” dari kelas dan antarmuka abstrak di Java - Kelas abstrak dapat memiliki pengubah akses publik, pribadi dan terlindungi, namun metode antarmuka secara implisit publik dan abstrak. Anda tidak dapat menggunakan pengubah akses lainnya dengan metode antarmuka '.
  4. "Implementasi" kelas abstrak dan antarmuka di Java - Kelas abstrak dapat memberikan implementasi antarmuka. Antarmuka, di sisi lain, tidak dapat memberikan implementasi kelas abstrak.
  5. "Kata kunci" kelas dan antarmuka abstrak di java- Sementara kata kunci "abstrak" digunakan untuk mendeklarasikan metode kelas abstrak sebagai abstrak, bagaimanapun, antarmuka sama sekali merupakan cerita yang berbeda; mereka hanya dapat memiliki konstanta akhir publik dan statis dan deklarasi metode.
  6. "Gunakan" kelas abstrak dan antarmuka di java - Sementara antarmuka sangat ideal untuk deklarasi tipe, kelas abstrak paling cocok untuk penggunaan kembali kode dan perspektif evolusi. Antarmuka terlihat seperti kelas, tapi itu bukan kelas.
  7. "Keandalan" kelas dan antarmuka abstrak di Java- Perbedaan utama lainnya antara kelas abstrak dan antarmuka adalah bahwa yang pertama sedikit lebih cepat daripada yang terakhir karena pencarian biasanya terlibat dalam suatu antarmuka sebelum metode yang ditimpa dipanggil dalam java.
  8. "Variabel akhir" kelas abstrak dan antarmuka di java - Variabel yang dinyatakan dalam antarmuka adalah final secara default, sedangkan kelas abstrak mungkin atau tidak mengandung variabel non-final.

Antarmuka Kelas Abstrak vs di Java: Tabel Perbandingan

Kelas abstrak Antarmuka
Kata kunci abstrak digunakan untuk membuat kelas abstrak dan dapat digunakan dengan metode. Kata kunci antarmuka digunakan untuk membuat antarmuka tetapi tidak dapat digunakan dengan metode.
Kelas hanya dapat memperpanjang satu kelas abstrak. Kelas dapat menerapkan lebih dari satu antarmuka.
Kelas abstrak dapat memiliki metode abstrak dan non-abstrak. Antarmuka hanya dapat memiliki metode abstrak.
Variabel tidak final secara default. Itu mungkin mengandung variabel non-final. Variabel final secara default di antarmuka.
Kelas abstrak dapat memberikan implementasi antarmuka. Antarmuka tidak dapat menyediakan implementasi kelas abstrak.
Itu dapat memiliki metode dengan implementasi. Ini memberikan abstraksi absolut dan tidak dapat memiliki implementasi metode.
Itu dapat memiliki pengubah akses publik, pribadi, statis dan terlindungi. Metode ini secara implisit publik dan abstrak dalam antarmuka java.
Itu tidak mendukung banyak warisan. Itu mendukung banyak warisan.
Sangat ideal untuk menggunakan kembali kode dan perspektif evolusi. Itu sangat ideal untuk deklarasi tipe.

Poin Ringkasan pada Kelas Abstrak dan Antarmuka di Java

Kelas abstrak dan antarmuka digunakan untuk abstraksi; Namun, mereka memiliki perbedaan yang adil. Perbedaan utama antara keduanya didorong oleh metode abstraksi. Sementara yang pertama mungkin atau mungkin tidak memiliki metode abstrak, yang terakhir secara implisit abstrak. Kelas abstrak dapat memiliki metode abstrak dan non-abstrak. Antarmuka, di sisi lain, hanya dapat memiliki metode abstrak, sehingga mereka tidak dapat memiliki implementasi, yang hanya berarti antarmuka tidak dapat memiliki metode yang tidak beragam. Kelas abstrak tidak dapat dipakai yang melarang penciptaan suatu objek. Antarmuka, di sisi lain, mungkin terlihat seperti kelas, tetapi tidak.