Implementlar va kengaytmalar o'rtasidagi farq

Implementlar va kengaytmalar o'rtasidagi farq
Implementlar va kengaytmalar o'rtasidagi farq

Video: Implementlar va kengaytmalar o'rtasidagi farq

Video: Implementlar va kengaytmalar o'rtasidagi farq
Video: Brauzerlar. Brauzer dasturlari va ularning imkoniyatlarini. 2024, Iyul
Anonim

Implements vs Extends

Implements va Extends Java dasturlash tilida mavjud ikkita kalit soʻz boʻlib, qoʻshimcha funksiyalarni yangi sinfga oʻtkazish vositasini taʼminlaydi. Implements kalit so'zi aniq interfeysni amalga oshirish uchun ishlatiladi, Extends kalit so'zi esa (super) sinfdan meros olish uchun ishlatiladi. E'tibor bering, meros va interfeys tushunchalari C va VB. NET kabi boshqa ob'ektga yo'n altirilgan dasturlash tillarining ko'pchiligida mavjud, ammo ular ushbu tushunchalarni qo'llash uchun turli xil sintaksis yoki kalit so'zlarni taklif qiladi. Ushbu maqola faqat Java-da belgilangan Implements va Extends kalit so'zlariga qaratilgan.

Uzayadi

Extends kalit soʻzi Java dasturlash tilida meros tushunchasini amalga oshirish uchun ishlatiladi. Meros, asosan, yangi belgilangan sinf tomonidan mavjud sinfning xususiyatlarini va xatti-harakatlarini kengaytirishga ruxsat berish orqali kodni qayta ishlatishni ta'minlaydi. Yangi kichik sinf (yoki olingan sinf) super sinfni (yoki ota-sinfni) kengaytirganda, u kichik sinf super sinfning barcha atributlari va usullarini meros qilib oladi. Subklass ixtiyoriy ravishda ota-sinfdan meros qilib olingan xatti-harakatlarni bekor qilishi mumkin (usullarga yangi yoki kengaytirilgan funksiyalarni taqdim etish). Subklass Java-da bir nechta super sinflarni kengaytira olmaydi. Shuning uchun siz bir nechta meros uchun kengaytmalardan foydalana olmaysiz. Bir nechta merosga ega bo'lish uchun quyida tushuntirilgan interfeyslardan foydalanishingiz kerak.

Amalga kiritadi

Java dasturlash tilida Implements kalit soʻzi sinf tomonidan interfeysni amalga oshirish uchun ishlatiladi. Java-dagi interfeys mavhum tur bo'lib, u interfeysni amalga oshiradigan sinflar tomonidan amalga oshirilishi kerak bo'lgan shartnomani belgilash uchun ishlatiladi. Odatda interfeys faqat usul imzolari va doimiy deklaratsiyalarni o'z ichiga oladi. Muayyan interfeysni amalga oshiradigan har qanday interfeys interfeysda belgilangan barcha usullarni amalga oshirishi yoki mavhum sinf sifatida e'lon qilinishi kerak. Java-da ob'ekt havolasining turi interfeys turi sifatida belgilanishi mumkin. Lekin bu ob'ekt null bo'lishi kerak yoki ushbu interfeysni amalga oshiradigan sinf ob'ektini ushlab turishi kerak. Java-da Implements kalit so'zidan foydalanib, bitta sinfga bir nechta interfeyslarni amalga oshirishingiz mumkin. Interfeys boshqa interfeysni amalga oshira olmaydi. Biroq interfeys sinfni kengaytirishi mumkin.

Amallashtirish va kengaytirish oʻrtasidagi farq

Implements va Extends Java dasturlash tilida sinfga atributlar va xatti-harakatlarni meros qilib olish mexanizmini ta'minlovchi ikkita kalit so'z bo'lsa-da, ular ikki xil maqsadda qo'llaniladi. Implements kalit so'zi sinf uchun ma'lum bir interfeysni amalga oshirish uchun ishlatiladi, Extends kalit so'zi esa super sinfdan kengaytirish uchun pastki sinf uchun ishlatiladi. Sinf interfeysni amalga oshirganda, bu sinf interfeysda aniqlangan barcha usullarni amalga oshirishi kerak, lekin pastki sinf super sinfni kengaytirganda, u ota-sinfga kiritilgan usullarni bekor qilishi yoki bekor qilishi mumkin. Va nihoyat, Implements va Extends o'rtasidagi yana bir asosiy farq shundaki, sinf bir nechta interfeyslarni amalga oshirishi mumkin, ammo u Java'da faqat bitta super sinfdan kengayishi mumkin. Umuman olganda, Implements (interfeyslar) dan foydalanish Extends (meros) dan foydalanishga nisbatan ancha qulayroq hisoblanadi, masalan, yuqori moslashuvchanlik va ulanishni minimallashtirish qobiliyati. Shuning uchun amalda asosiy sinflardan ko'ra interfeysga dasturlash afzalroqdir.

Tavsiya: