Interfeys toifalari tushunchasi Interfeys toifalarni abstract bazaviy sinflar bilan taqqoslash Maxsus interfeyslarni kiritish


Download 0.77 Mb.
bet4/50
Sana26.01.2023
Hajmi0.77 Mb.
#1129439
1   2   3   4   5   6   7   8   9   ...   50
Bog'liq
MAVZULAR UMUMIY

INuqta p = new INuqta (); // Kompilyatsiya bosqichida xato!
}
Toki biror sinf yoki struktura tomonidan realizatsiya qilinmas ekan, interfeyslar dasturda foydasizligicha qolib ketadi. Bu yerda INuqta “uchlar mavjudligi”ni ifodalovchi interfeys sifatida namoyon bolmoqda. G’oya oddiy: shakllar shajarasidagi ba’zi sinflar (masalan, Kopburchak) uchlarga ega, boshqalari esa ega emas (Aylana, Ellips kabilar).

Interfeys realizatsiyasi
Sinf yoki struktura vazifalarini interfeyslarni qo’llash orqali kengaytirishga qaror qilinganida, uning aniqlanishiga vergullar bilan ajratilgan zarur interfeyslar ro’yxati qo’shiladi. Unutmaslik kerakki, bevosita bazaviy sinf ikki nuqta amalidan keyin darhol ko’rsatilishi kerak. Agar toifa to’g’ridan-to’g’ri System.Object dan hosil qilinayotgan bo’lsa, u holda siz sinf qo’llab-quvvatlaydigan interfeyslarni sanab o’tasiz xolos, chunki C# kompilyatori, agar boshqa toifa (sinf) ko’rsatilmagan bo’lsa, kiritilayotgan toifa System.Object ni kengaytirmoqda deb hisoblaydi. Misol uchun strukturalar hamisha System.ValueType sinfining vorislari bo’lgani uchun, struktura ta’rifidan so’ng interfeyslar ro’yhatini ko’rsatish kifoyadir. Quyidagi misollarga nigoh tashlang:
// Bu sinf System.Object ning vorisidir
// va yagona interfeysni realizatsiya qiladi
public class Pencil : IPointy
{ . . . }
// Bu sinf ham System.Object ning vorisidir
// va yagona interfeysni realizatsiya qiladi
public class SwitchBlade : object, IPointy
{ . . . }
// Bu sinf maxsus bazaviy sinf vorisidir
// va yagona interfeysni realizatsiya qiladi
public class Fork : Utensil, IPointy
{ . . . }
// Bu struktura System.ValueType ning nooshkor
// va ikkita interfeysni realizatsiya qiladi
public struct PitchFork : ICloneable, IPointy
{ . . . }
Shuni tushunish muhimki, interfeyslarning realizatsiyasi “hammasi yoki birortasi ham emas” tamoyili bo’yicha ishlaydi. Interfeysni qo’llayotgan (realizatsiya qilayotgan) toifa qanday a’zolarni realizatsiya qilishni tanlash imkoniga ega emas. Agar siz o’nta a’zoga ega interfeysni realizatsiya qiladigan bo’lsangiz, bu o’nta abstrakt a’zolar har birining tafsilotlari uchun shu interfeysni qo’llayotgan toifa mas’uldir.
Sinf (yoki struktura) vazifalarini interfeyslar orqali kengaytirishda, sinf (yoki struktura) e’loniga kerakli interfeyslarning ro’yhati vergullar bilan ajratilgan holda qo’shiladi. Ikki nuqta amalidan keyin birinchi bo’lib bevosita ajdod sinf ko’rsatiladi, undan keyingina interfeyslar ko’rsatiladi. Agar sinf to’g’ridan-to’g’ri System.Object ning vorisi sifatida yaratilayotgan bo’lsa, ikki nuqtadan so’ng interfeyslar ro’yhati berilishi mumkin.

C. 307



Download 0.77 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   ...   50




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling