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:
- Apakah Kelas Abstrak di Jawa?
- Antara muka di Java
- Kelas Abstrak vs Antara Muka
- Bilakah menggunakan Kelas Abstrak & Bilakah menggunakan Antara Muka?
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.