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.
1   2   3   4   5   6   7   8   9   ...   15
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 2020
ma'muriyatiga murojaat qiling

    Bosh sahifa
davlat universiteti
ta’lim vazirligi
O’zbekiston respublikasi
maxsus ta’lim
zbekiston respublikasi
o’rta maxsus
davlat pedagogika
axborot texnologiyalari
nomidagi toshkent
pedagogika instituti
texnologiyalari universiteti
navoiy nomidagi
samarqand davlat
guruh talabasi
ta’limi vazirligi
nomidagi samarqand
toshkent axborot
toshkent davlat
haqida tushuncha
Darsning maqsadi
xorazmiy nomidagi
Toshkent davlat
vazirligi toshkent
tashkil etish
Alisher navoiy
Ўзбекистон республикаси
rivojlantirish vazirligi
matematika fakulteti
pedagogika universiteti
таълим вазирлиги
sinflar uchun
Nizomiy nomidagi
tibbiyot akademiyasi
maxsus ta'lim
ta'lim vazirligi
махсус таълим
bilan ishlash
o’rta ta’lim
fanlar fakulteti
Referat mavzu
Navoiy davlat
umumiy o’rta
haqida umumiy
Buxoro davlat
fanining predmeti
fizika matematika
universiteti fizika
malakasini oshirish
kommunikatsiyalarini rivojlantirish
davlat sharqshunoslik
jizzax davlat