Java-da meros va interfeys o'rtasidagi farq

Mundarija:

Java-da meros va interfeys o'rtasidagi farq
Java-da meros va interfeys o'rtasidagi farq

Video: Java-da meros va interfeys o'rtasidagi farq

Video: Java-da meros va interfeys o'rtasidagi farq
Video: Рефакторинг: switch vs if-else vs enum vs HashMap [Шаблон "Команда"] 2024, Noyabr
Anonim

Asosiy farq – meros va Java interfeysi

Java - Sun Microsystems tomonidan ishlab chiqilgan dasturlash tili. Java turli xil ilovalarni ishlab chiqish uchun ishlatilishi mumkin. Bu ko'p paradigmali til bo'lib, ob'ektga yo'n altirilgan, tuzilgan va hokazolarni qo'llab-quvvatlaydi. Java tilining asosiy afzalligi shundaki, u ob'ektga yo'n altirilgan dasturlashni (OOP) qo'llab-quvvatlaydi. Dasturchi sinflar va ob'ektlar yaratishi mumkin. OOPda to'rtta ustun mavjud. Bular meros, polimorfizm, abstraksiya va inkapsulyatsiya. Meros va interfeyslar OOP bilan bog'liq. Meros va interfeys o'rtasidagi asosiy farq shundaki, meros mavjud sinflardan yangi sinflarni olish va interfeys mavhum sinflar va ko'p merosni amalga oshirishdir.

Javada Meros nima?

Meroslanish kodni qayta ishlatishga erishishi mumkin. Meros mavjud sinfning atributlari va usullarini qayta ishlatishga yordam beradi. Eski sinf yordamida yangi sinfni olish mexanizmi meros deb ataladi. Eski sinf ota-ona sinf yoki super sinf sifatida tanilgan. Hosil boʻlgan sinf kichik sinf yoki kichik sinf deb ataladi.

Java merosining sintaksisi quyidagicha.

sinf quyi sinf_nomi yuqori sinf_nomini kengaytiradi {

oʻzgaruvchilar deklaratsiyasi;

usul deklaratsiyasi;

}

Meros tushunchasini quyidagi misol yordamida tushuntirish mumkin. Faraz qilaylik, A deb nomlangan sinf mavjud.

ommaviy sinf A{

ommaviy bekor summa(){

System.out.println("Sum");

}

}

Agar biz mavjud sinfni oʻzgartirmasdan yangi usul qoʻshishni istasak, buni quyidagicha qilishimiz mumkin.

ommaviy sinf B{

ommaviy bekor sub(){

System.out.println("Sub");

}

}

Dasturchi A sinf summasidan foydalanish uchun merosdan foydalanishi mumkin.

ommaviy B klassi A sinfini kengaytiradi{

ommaviy bekor sub(){

System.out.println("Sub");

}

}

Asosiy funktsiyada B ob'ektini yaratish va merosdan foydalangan holda B sinfiga tegishli sub() va A sinfiga tegishli sum() ni chaqirish mumkin.

ommaviy statik bekor asosiy(String args){

B obj=yangi B();

obj.sub();

obj.sum();

}

Merosning har xil turlari mavjud. Ular bitta meros, ko'p meros, ko'p darajali meros va ierarxik merosdir. Yagona merosda bitta asosiy sinf va bitta hosila sinf mavjud. Ko'p darajali merosda uchta sinf mavjud: asosiy sinf, oraliq sinf va hosila sinf. Oraliq sinf asosiy sinfdan, olingan sinf esa oraliq sinfdan meros oladi. Ierarxik merosda bitta asosiy sinf va ko'plab hosila sinflari mavjud. Gibrid meros deb nomlanuvchi maxsus tur mavjud. Bu ikki yoki undan ortiq meros turlarining kombinatsiyasi.

Java-da meros va interfeys o'rtasidagi farq
Java-da meros va interfeys o'rtasidagi farq

01-rasm: Meros

Koʻp merosda koʻplab tayanch sinflar va bitta olingan sinf mavjud. A va B sinflari asosiy sinflar deb faraz qiling. C klassi olingan sinfdir. Agar A va B sinflari bir xil usulga ega bo'lsa va dasturchi bu usulni olingan sinfdan chaqirsa, bu noaniqlik muammosini keltirib chiqaradi. Ikki sinfni meros qilib olish kompilyatsiya vaqtida xatolikka olib kelishi mumkin. Shuning uchun Java-da bir nechta meros qo'llab-quvvatlanmaydi. Ushbu muammoni yengish uchun interfeysdan foydalanish mumkin.

Javada interfeys nima?

Abstraktsiya - bu amalga oshirish tafsilotlarini yashirish va foydalanuvchiga faqat funksiyalarni ko'rsatish jarayoni. Abstraktsiyaga Abstrakt sinflar yoki interfeyslar yordamida erishish mumkin. Mavhum usul - bu amalga oshirilmaydigan usul. Eng kamida bitta abstrakt metodga ega sinf mavhum sinf hisoblanadi. Abstrakt sinfga misol quyidagicha.

mavhum sinf A{

mavhum bekor summa();

}

A va B kabi ikkita abstrakt sinf bor deb faraz qilaylik. A va B mavhum usullarini amalga oshirish uchun yangi C sinfi yaratiladi. Keyin C sinfi ham A, ham B.ni kengaytirishi kerak, ammo Java-da bir nechta meros qo'llab-quvvatlanmaydi. Shuning uchun interfeyslardan foydalanish kerak. Usullarni e'lon qilish uchun interfeyslardan foydalanish mumkin, ammo usullarni aniqlash mumkin emas. Interfeyslar yordamida ob'ekt yaratish mumkin emas. C sinf A va B interfeysidagi barcha usullarni qo'llashi kerak.

interfeys A{

bekor summa();

}

interfeys B{

void sub();

}

C klassi A, B{

ommaviy bekor summa(){

System.out.println("Summation");

}

ommaviy bekor sub(){

System.out.println("Ayrish");

}

}

Endi asosiy dasturda C tili ob'ektini yaratish va ikkala usulni chaqirish mumkin.

ommaviy statik bekor asosiy (String args) {

C obj=yangi C();

obj.sum();

obj.sub();

}

Demak, interfeyslar bir nechta merosni amalga oshirish uchun foydalanishi mumkin.

Interfeyslardan yana bir foydalanish - bu xavfsizlikni ta'minlaydi. Quyidagi kodga qarang.

interfeys A {

bekor summa ();

}

B sinfi A moslamalari {

ommaviy bekor summasi () {

System.out.println("Summation");

}

ommaviy bekor koʻpaytiriladi () {

System.out.println("Ko'paytirish");

}

}

B ob'ektini yaratishda har ikkala usulni sum () va ko'paytirish () deb atash mumkin. Agar dasturchi multiply () funksiyasidan foydalanishni cheklamoqchi bo'lsa, buni quyidagicha amalga oshirish mumkin.

ommaviy statik bekor asosiy(String args){

A obj=yangi B();

obj.sum();

}

A obj=yangi B(); obyekt yaratadi. U A tipidagi va xotira B sifatida ajratilgan. sum() ni chaqirish mumkin, lekin multiply() ni bajara olmaydi. Bu cheklov interfeyslar yordamida amalga oshiriladi.

Javada meros va interfeys oʻrtasidagi oʻxshashliklar qanday?

  • Ikkala tushuncha ham obyektga yoʻn altirilgan dasturlash bilan bogʻliq
  • Ikkalasi ham IS-A munosabatlarini ifodalaydi.

Javada meros va interfeys oʻrtasidagi farq nima?

Meros va Java interfeysi

Meros - bu mavjud sinflardan yangi sinflar olish uchun OOP tushunchasi. Interfeys OOPda abstraktsiya va bir nechta merosni amalga oshirish mexanizmi.
Foydalanish
Meroslanish kodni qayta ishlatish imkonini beradi. Interfeyslar abstraksiya va bir nechta merosni ta'minlaydi.

Xulosa – meros va Java interfeysi

Java - ob'ektga yo'n altirilgan dasturlashni qo'llab-quvvatlaydigan ko'p paradigmali dasturlash tili. Meros va interfeyslar ob'ektga yo'n altirilgan dasturlash bilan bog'liq. Meros va interfeys o'rtasidagi farq shundaki, meros mavjud sinflar va interfeyslardan yangi sinflarni olish uchun mavhum sinflar va bir nechta merosni amalga oshirishdir.

Merosning PDF-versiyasini Java-dagi interfeysga nisbatan yuklab oling

Siz ushbu maqolaning PDF-versiyasini yuklab olishingiz va iqtibos keltirgan holda oflayn maqsadlarda foydalanishingiz mumkin. Iltimos, PDF versiyasini bu yerdan yuklab oling Java-da meros va interfeys o'rtasidagi farq

Tavsiya: