Urganch davlat universiteti fizika va matematika fakulteti amaliy matematika va informatika yo



Download 96,44 Kb.
bet9/15
Sana27.04.2020
Hajmi96,44 Kb.
#47523
1   ...   5   6   7   8   9   10   11   12   ...   15
Bog'liq
C# dasturlash tilida interfeyslar bilan ishlash

5 Interfeysning merosxo'rligi.

Interfeyslar, sinflar singari meros bo'lib o'tishi mumkin:



interface IAction

{

    void Move();



}

interface IRunAction : IAction

{

    void Run();



}

class BaseAction : IRunAction

{

    public void Move()



    {

        Console.WriteLine("Move");

    }

    public void Run()



    {

        Console.WriteLine("Run");

    }

}


Ushbu interfeysdan foydalanganda, BaseAction klassi IRunAction interfeysining usullari va xususiyatlarini, shuningdek, agar ushbu usullar va xususiyatlar odatiy bajarishga ega bo'lmasa, IAction bazaviy interfeysining usullari va xususiyatlarini amalga oshirishga to'g'ri keladi.Ammo, sinflardan farqli o'laroq, interfeysga meros qilib olishni oldini olish uchun biz muhrlangan modifikatorni interfeyslarga qo'llay olmaymiz.Bundan tashqari, biz mavhum modifikatorni interfeyslarga qo'llay olmaymiz, chunki interfeys, aslida, sinfda yoki strukturada amalga oshirilishi kerak bo'lgan mavhum funktsionallikni ta'minlaydi (standart amalga oshiriladigan usul va xususiyatlardan tashqari).Biroq, interfeys usullari yangi kalit so'zni asosiy interfeysdan yashirish uchun ishlatishi mumkin:

class RunAction : IRunAction

{

    public void Move()



    {

        Console.WriteLine("I am running");

    }

}

 



interface IAction

{

    void Move();



}

interface IRunAction : IAction

{

    new void Move();



}

Bu erda IRunAction-dan Move usuli IAction bazasi interfeysidan Move usulini yashiradi. Bunda katta ma'no yo'q, chunki bu holda yashirish uchun hech narsa yo'q, biz buni baribir qila olamiz. Va RunAction klassi ikkala interfeys uchun birdaniga Move usulini amalga oshiradi.

Interfeyslarni meros qilib olishda, shuni yodda tutish kerakki, klassni meros qilib olishda bo'lgani kabi, olingan interfeys bir xil kirish darajasiga ega bo'lishi yoki asosiy interfeysga nisbatan qat'iyroq bo'lishi kerak. Masalan:



public interface IAction

{

    void Move();



}

internal interface IRunAction : IAction

{

    void Run();



}

Ammo boshqa yo'l bilan emas. Masalan, quyidagi holatda, biz xato qilamiz va dastur kompilyatsiya qilmaydi, chunki olingan interfeys bazaga qaraganda kamroq qattiq kirish darajasiga ega:

internal interface IAction

{

    void Move();



}

public interface IRunAction : IAction   // IRunAction xatosi faqat ichki bo'lishi mumkin

{

    void Run();



}


Download 96,44 Kb.

Do'stlaringiz bilan baham:
1   ...   5   6   7   8   9   10   11   12   ...   15




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