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


Interfeyslarni aniq amalga oshirish



Download 96,44 Kb.
bet5/15
Sana27.04.2020
Hajmi96,44 Kb.
#47523
1   2   3   4   5   6   7   8   9   ...   15
Bog'liq
C# dasturlash tilida interfeyslar bilan ishlash

3 Interfeyslarni aniq amalga oshirish


interface IAction

{

    void Move();



}

class BaseAction : IAction

{

    void IAction.Move()



    {

        Console.WriteLine("Move in Base Class");

    }

}

Oldingi maqolada ko'rib chiqilgan interfeyslarni noaniq qo'llash bilan bir qatorda, interfeysning aniq bajarilishi ham mavjud. Aniq amalga oshirilganda, interfeys nomi bilan birga metod yoki xususiyatning nomi ko'rsatiladi, ammo biz umumiy modifikatordan foydalana olmaymiz, ya'ni usullar shaxsiy:



Shuni yodda tutingki, interfeys aniq amalga oshirilsa, uning usullari va xususiyatlari sinf interfeysiga kirmaydi. Shuning uchun, to'g'ridan-to'g'ri sinf ob'ekti orqali, biz ularga kira olmaymiz:

static void Main(string[] args)

{

    BaseAction action = new BaseAction();



    ((IAction)action).Move();  // IAction turiga o'tkazish uchun talab qilinadi

    IAction action2 = new BaseAction();

    action2.Move();

Console.ReadKey();}



Qanday vaziyatda interfeysni aniq amalga oshirish kerak bo'lishi mumkin? Masalan, agar sinf bir nechta interfeyslardan foydalansa, lekin ular bir xil natijaga va bir xil parametrlar to'plamiga ega bo'lsa:


class Person : ISchool, IUniversity

{

    public void Study()



    {

        Console.WriteLine("Учеба в школе или в университете");

    }

}

 



interface ISchool

{

    void Study();



}

 

interface IUniversity



{

    void Study();

}

Shaxslar sinfi bitta Study () usulini belgilaydi va foydalanilgan ikkala interfeys uchun bitta umumiy bajarishni yaratadi. Biz Shaxs ob'ektini ISchool yoki IUniversity tipidagi ob'ekti deb hisoblaganimizdan qat'i nazar, usulning natijasi bir xil bo'ladi.

Amalga oshirilgan interfeyslarni farqlash uchun siz aniq interfeysni qo'llashingiz kerak:


class Person : ISchool, IUniversity

{

    void ISchool.Study()



    {

        Console.WriteLine("Учеба в школе");

    }

    void  IUniversity.Study()



    {

        Console.WriteLine("Учеба в университете");

    }

}

Foydalanish:



static void Main(string[] args)

{

    Person p = new Person();



 

    ((ISchool)p).Study();

    ((IUniversity)p).Study();

     


    Console.Read();

}


Boshqa vaziyat, interfeys tayanch sinfda allaqachon amalga oshirilgan bo'lsa, lekin olingan sinfda interfeysni o'z-o'zidan amalga oshirish kerak:

interface IAction

{

    void Move();



}

class BaseAction : IAction

{

    public void Move()



    {

        Console.WriteLine("Move in BaseAction");

    }





}

class HeroAction : BaseAction, IAction

{

    void IAction.Move()



    {

        Console.WriteLine("Move in HeroAction");

    }

}



HeroAction action1 = new HeroAction();

action1.Move();            // Move in BaseAction

((IAction)action1).Move(); // Move in HeroAction

 

IAction action2 = new HeroAction();



action2.Move();             // Move in HeroAction
BaseAction bazaviy klassi allaqachon IAction interfeysini amalga oshirgan bo'lishiga qaramay, olingan sinf uni o'z uslubida amalga oshiradi. Qo'llash darslari:


Download 96,44 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   ...   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