Олий таълим ўқув режаларидаги фанларга



Download 4,03 Mb.
bet71/102
Sana23.02.2022
Hajmi4,03 Mb.
#136190
1   ...   67   68   69   70   71   72   73   74   ...   102
Bog'liq
Dasturlash asoslari majmua

Интерфейслар ва ворислик.


Интерфейс қанча бўлсада аждодларга эга бўлиши ёки эга бўлмаслиги ҳам мумуин.Биринчи ҳолда у энг бқори шажарадан бошлаб барча базавий интерфейсларнинг барча элемнтларини мерос қилиб олади.
Классларнинг одиий шажараларидаги кабибазавий интерфейслар умумий ҳулқларни белгилаб беради, уларнинрг авлодлари эса уларни конкретлаштиради ва тўлдиради. Шунингдек, интерфейс-авлодларда ўхшаш сигнатурали ворис эелементларни қайта аниқлайдиган элементларни кўрсатиш мумкин. Бундай ҳолларда элементлан олддин ҳизматчи new сзўини ёзилади. Бу сўз ёрдамида базавий интерфейснинг мос элементи яширилади. Интерфейсни амалга оширувчи класс унинг барча элементларини, шу жумладан мерос қилиб олинганларини ҳам белгилаб бериши керак.
Ҳусусий хамда мерос қилиб толинган элементларига ошкор ҳаволалар мавжуд бўлган интерфейс аждод класслари рўйхатида кўрсатилган бўлиши керак.
Класс ўзининг аждодларининг барча методларини, шу жумладан интерфейсларни амалга оширганларини ҳам мерос қилиб олади. У бу методларни New спецификатори ёрдамида қайта аниқлаши ҳам мумкин, аммо уларга фақат класс объекти орқали мурожаат қилиш мумкин бўлади. Агар мурожаат учун интерфейсга ҳаволалардан фойдаланилса, у ҳолда қайта аниқланмайдиган версия чақирилади:
interface IBase
{
void A();
}


class Base : IBase
{
public void A() { ... }
}


class Derived: Base
{
new public void A() { ... }
}


...
Derived d = new Derived ();
d.A(); // Derived.A() чақирилмоқда;
IBase id = d;
id.A(); // Base.A() чақирилмоқда;
Аммо, агар интерфейс класснинг виртуал методи ёрдамида амалга оширилаётган бўлса, унинг авлодда қайта аниқланишидан кейин иҳтириё мурожаат варианти бир ҳил натижага олиб келади. Номни ошкор кўрсатиб амалга оширилган интерфейс методини виртуал деб эълон қилиш таъқиқланган.
Номини авлодлар класси рўйхатида шу интерфейсни амалга оширган авлод–класс билан бир қаторда кўрсатиб интерфейсни такроран амалга ошириш мумкин. Бунда қайта аниқланган базавий методларни амалга оишриш эътиборга олинмайди:
interface IBase
{
void A();
}
class Base : IBase
{
void IBase.A() { ... } // Derived да фойдаланилмайди
}
class Derived : Base, IBase
{
public void A() { ... }
}
Агар класс бир ҳил сигнатурага эга бўлган класс ва интерфейслардан мерос олади. Бунда мерос қилиб олинган класс методи интерфейсни амлга оширилганлиги тарзида қабул қилинади. Умуман олганда интерфейс амалга оширилганда “мос келувчи” методларнинг мавжудлиги эътиборга олинади. Булар интерфейсни ошкор ёки ошкормас кўринишда амалга оширувчи жорий ёки базавий классда тавсифланган методлар бўлиши мумкин.

Download 4,03 Mb.

Do'stlaringiz bilan baham:
1   ...   67   68   69   70   71   72   73   74   ...   102




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish