Apakah perbezaan antara Abstract Class dan Interface di Java?



Artikel ini akan membantu anda memahami perbezaan utama antara kelas abstrak dan antara muka di java dengan bantuan program contoh.

Kelas abstrak dan antara muka adalah dua blok bangunan utamadaripada . Walaupun kedua-duanya terutama digunakan untuk abstraksi, keduanya sangat berbeza antara satu sama lain dan tidak dapat digunakan secara bergantian. Dalam artikel ini mari kita ketahui apa perbezaan antara kelas abstrak dan antara muka di Java.

Topik yang dibincangkan dalam artikel ini adalah seperti berikut:





Untuk memahami perbezaan antara kelas abstrak dan antara muka di , anda perlu mengetahui apa itu kelas abstrak dan apakah antara muka. Oleh itu, mari kita mulakan dengan membincangkan apa itu.

Apakah Kelas Abstrak di Jawa?

Dalam mana-mana bahasa pengaturcaraan, pengabstrakan bermaksud menyembunyikan butiran yang tidak relevan dari pengguna untuk hanya menumpukan pada butiran penting untuk meningkatkan kecekapan sehingga mengurangkan kerumitan. Di Jawa, abstraksi dicapai dengan menggunakan kelas abstrak . Kelas abstrak menangkap ciri umum subkelas dan mungkin atau mungkin tidak mengandungi kaedah abstrak. Ia tidak dapat dijadikan contoh tetapi hanya dapat digunakan sebagai superclass oleh subkelasnya. Berikut adalah contoh program yang menunjukkan kelas abstrak:



Catatan: Seorang kaedah abstrak , adalah kaedah yang tidak dilaksanakan di tempat dan menambahtidak lengkap untuk kelas .

pakej MyPackage // kelas abstrak kelas abstrak Haiwan {String AnimalName = 'Haiwan (String name) {this.AnimalName = name} // menyatakan kaedah bukan abstrak // ia mempunyai pelaksanaan lalai awam yang tidak sah BasicInfo (String details) {System. out.println (this.AnimalName + '' + details)} // kaedah abstrak yang akan // dilaksanakan oleh subkelasnya (habitat awam kosong abstrak) () respirasi kekosongan awam abstrak ()} kelas Terestrial meluas Haiwan {// pembangun Terestrial (String name) {super (name)} @Override public void habitat () {System.out.println ('cuti di darat dan')} @Override public void respiratory () {System.out.println ('respirire melalui paru-paru atau trakea. ')}} kelas Akuatik meluas Haiwan {// konstruktor Akuatik (String name) {super (name)} @Override public void habitat () {System.out.println (' Ia meninggalkan air dan ') } @ Override public void respiratory () {System.out.println ('pernafasan melalui insang atau kulitnya.')}} Kelas AbstractClassDemo {public static voi d main (String [] args) {// membuat Objek kelas Terestrial // dan menggunakan rujukan kelas Haiwan. Objek haiwan1 = objek Terestrial ('Manusia') baru1.BasicInfo ('adalah makhluk terestrial, mereka') objek1.habitat () objek1.respirasi () System.out.println ('') // membuat Objek kelas kelas Haiwan objek2 = objek Akuatik baru ('Ikan') objek 2. BasicInfo ('adalah makhluk air, mereka') objek2.habitat () objek2.respirasi ()}}

Pengeluaran

Manusia adalah makhluk darat, mereka meninggalkan di darat dan bernafas melalui paru-paru atau trakea. Ikan adalah makhluk laut, ia meninggalkan di dalam air dan bernafas melalui insang atau kulitnya.

The Info asas () adalah kaedah yang dikongsi oleh Terestrial dan Akuatik kelas. Sejak Kelas haiwan tidak dapat dimulakan, kami membuat objek dari Terestrial dan Akuatik kelas untuk tujuan pengaturcaraan. Seterusnya, kami mempunyai antara muka.



Antara muka di Java

Kaedah lain untuk mencapai pengabstrakan di Java adalah dengan menggunakan antara muka .Antaramuka adalah kumpulan kaedah abstrak, ia tidak mempunyai konkrit , tidak seperti kelas abstrak. Tetapi tidak seperti kelas abstrak, antaramuka memberikan abstraksi penuh di Java. Ia boleh mempunyai kaedah dan pemboleh ubah seperti kelas. Walau bagaimanapun, kaedah yang dinyatakan dalam antara muka adalah abstrak secara lalai.Ini dia menunjukkan kelas abstrak:

pakej MyPackage interface Haiwan {// kaedah abstrak habitat kosong () respirasi kosong ()} kelas TerrestrialA melaksanakan Haiwan {String AnimalName = '' // konstruktor TerrestrialA (String name) {this.AnimalName = name} @Override public void habitat () {System.out.println (this.AnimalName + 'cuti di darat dan')} @ Override public void respiratory () {System.out.println ('respiratori melalui paru-paru atau trakea.')}} Kelas AquaticA menerapkan Haiwan {String AnimalName = '// konstruktor AquaticA (String name) {this.AnimalName = name} @Override public void habitat () {System.out.println (this.AnimalName + 'cuti di dalam air dan')} @Override public void respiratory () {System.out.println ('bernafas melalui insang atau kulitnya.')}} Kelas JavaInterfaceDemo {public static void main (String [] args) {// membuat Objek kelas Terestrial // dan menggunakan rujukan kelas Haiwan . Haiwan objek1 = objek TerestrialA baru ('Manusia') objek1.habitat () objek1.respirasi () System.out.println ('') // membuat Objek kelas lingkaran Objek objek2 = objek AquaticA ('Ikan') baru2.habitat () objek2.respirasi ()}}

Pengeluaran

Manusia pergi ke darat dan bernafas melalui paru-paru atau trakea. Ikan keluar di dalam air dan bernafas melalui insang atau kulitnya.

Sekiranya anda tidak mempunyai kod yang sama antara anda kelas , maka anda boleh mencari antara muka. Antaramuka lebih menyerupai cetak biru kelas kerana tidak mempunyai kaedah yang tidak abstrak.

Dari kandungan di atas, anda mungkin menyedari perbezaan utama antara kelas abstrak dan antara muka di . Yang, tidak seperti kelas abstrak, antara muka menyediakan penuh pengabstrakan di Jawa. Sekarang mari kita teruskan dan senaraikan perbezaan lain.

Kelas Abstrak vs Antara Muka

Jadual di bawah menyenaraikan perbezaan utama antara kelas abstrak dan antara muka.

Parameter Kelas Abstrak Antara muka

Pelaksanaan Kaedah Lalai

Ia boleh mempunyai kaedah pelaksanaan lalai

menulis jurubahasa dalam java

Antaramuka memberikan pengabstrakan yang murni & sama sekali tidak dapat dilaksanakan

Pemboleh ubah

Ia mungkin mengandungi pemboleh ubah bukan akhir.

Pemboleh ubah yang dinyatakan dalam antara muka secara lalai adalah muktamad

Kata Kunci Digunakan

Kelas abstrak dapat diperluas dengan menggunakan kata kunci 'meluas

Antaramuka harus dilaksanakan dengan menggunakan kata kunci ïmelemen

Pengubah Akses

Bolehmempunyai pengubahsuaian awam, dilindungi, peribadi dan lalai

Kaedah antara muka secara awam lalai. anda tidak boleh menggunakan pengubah akses lain dengannya

Kepantasan Pelaksanaan

Ia lebih pantas daripada antara muka

Antaramuka agak lebih perlahan & memerlukan pengarahan tambahan

Kelas Biasa

Ia dapat meluaskan satu kelas abstrak sahaja

Boleh melaksanakan pelbagai antara muka

Pembina

Kelas abstrak boleh mempunyai pembina

Antara muka tidak boleh mempunyai pembina

Warisan Pelbagai

Kelas abstrak dapat memanjangkan kelas lain dan dapat melaksanakan pelbagai antara muka Java

Antaramuka hanya dapat meluaskan antara muka Java yang lain

Nah, sekarang anda perbezaan utama antara kelas abstrak dan antara muka di Java. Tetapi, bagaimana anda memutuskan bila hendak menggunakan yang mana antara kedua-duanya?

Bilakah menggunakan Kelas Abstrak & Bilakah menggunakan Antara Muka?

Pertimbangkan untuk menggunakan kelas abstrak dalam kes berikut:

  • Sekiranya anda mempunyai beberapa kelas yang berkaitan yang perlu berkongsi garis kod yang sama
  • Apabila anda mahu menentukan bidang tidak statik atau tidak muktamad
  • Apabila adakaedah atau bidangatau memerlukan pengubah akses selain daripada umum (seperti dilindungi dan peribadi)

Pertimbangkan untuk menggunakan antara muka dalam kes berikut:

  • Apabila anda mahu mencapai pengabstrakan tulen
  • Sekiranya anda mahu mengambil pekerjaan pelbagai , iaitu,melaksanakan lebih daripada satu antara muka
  • Apabila anda ingin menentukan tingkah laku jenis data tertentu, tetapi tidak mengambil berat tentang siapa yang melaksanakan tingkah lakunya.

Ini membawa kita ke akhir artikel ini. Saya telah membahas salah satu pertanyaan Java yang paling sering ditanya dalam Interview, iaitu perbezaan antara kelas abstrak dan antara muka di Java.

Pastikan anda berlatih sebanyak mungkin dan kembalikan pengalaman anda.

Lihat oleh Edureka, sebuah syarikat pembelajaran dalam talian yang dipercayai dengan rangkaian lebih daripada 250,000 pelajar berpuas hati yang tersebar di seluruh dunia. Kami di sini untuk membantu anda dalam setiap langkah dalam perjalanan anda, kerana selain daripada soalan wawancara java ini, kami menyediakan kurikulum yang dirancang untuk pelajar dan profesional yang ingin menjadi Pembangun Java.

melalui rujukan di java

Ada soalan untuk kami? Sila sebutkan di bahagian komen ‘antar muka peta java’ ini artikel dan kami akan menghubungi anda secepat mungkin.