• static void Main() { Gen2 g2 = new Gen2 ("Привет"); Console.WriteLine(g2.GetOb()); } }
  • Amaliy mashg’ulot: Umumlashgan turlar vorisligi. Tayanch so`z va iboralar




    Download 21,55 Kb.
    bet2/3
    Sana07.12.2023
    Hajmi21,55 Kb.
    #113517
    1   2   3
    Bog'liq
    1-мавзу Vorislik
    cybersecurity-artificial-intelligence 11111 (1) (1), 1. Nosimetrik shifrlash algoritmlari Assimetrik shifrlash algori, 402-guruh onlayn kurslar, Elektron ta\'limni boshqaruv vositalari 191 Begbo\'tayeva Sadoqat-fayllar.org, 4-labaratoriya mashg\'ulot topshirig\'i, Pythonda turtle kutubxonasi bilan ishlash (1), 1-mavzu. Zamonaviy axborot texnologiyalari va ularni qoʻllanilishii, Презентация Microsoft PowerPoint (4), Usmon, 9, SANOAT, 1427572, Matematika va informatika ta, 619-guruh dasturlash tillari oraliq nazorat 22.10.2022, Sanoat korxonalarida mehnat gigienasi va ishlab chiqarish sanitariyasi1
    using System;
    class Gen {
    T ob;
    public Gen(T о) {
    ob = о;
    }
    public T GetOb() {
    return ob;
    }
    }
    class Gen2 : Gen {
    public Gen2(T o) : base(o) {
    // ...
    }
    }
    class GenHierDemo {
    static void Main() {
    Gen2 g2 = new Gen2("Привет");
    Console.WriteLine(g2.GetOb());
    }
    }

    Vorislik (inheritance) Obyektga Yonaltirilgan Dasturlash(OYD)ning muhim tamoyillaridan biridir. Voris orqali bir sinf boshqa sinfning funksionalligini o’zlashtirishi mumkin, ya’ni voris sinflar umumiy xususiyatlarni vorislik bilan olgan holda, ayrim xususiyatlarni qayta aniqlash orqali yoki yangi xususiyat kiritish orqali tayanch sinfga o’zgartirish mumkin. Shu sababli hosilaviy sinflarni aniqlash sezilarli ravishda kamayadi, chunki unga tayanch sinfdan farqli elementlar qo’shiladi. Aytaylik, bizda alohida shaxsni tavsiflovchi quyidagi Person sinfi mavjud:


    class Person
    {
    private string _name;
    public string Name
    {
    get { return _name; }
    set { _name = value; }
    }
    public void Display()
    {
    Console.WriteLine(Name);
    }
    }
    Ammo korxona ishchisini tavsiflovchi sinf kerak bo’lib qoldi deylik - bu Employee sinfi. Ushbu sinf Person sinfi bilan bir xil funktsiyani amalga oshirishi sababli, xodim ham o'z navbatida shaxs bo'lganligi sababli, Employee sinfini Person sinfining vorisi (yoki sinf osti) ga aylantirish mantiqan to'g'ri bo'ladi. Bu sinf o’z navbatida ajdod (yoki superklass) tayanch sinf deb nomlanadi:
    class Employee : Person
    {
    }
    Ikki nuqtadan keyin ushbu sinf uchun tayanch sinfni ko'rsatiladi. Person sinfi Employee sinfi uchun tayanch sinf hisoblanadi, va shuning uchun Employee sinfi Person sinfining barcha barcha xususiyatlarni, metodlarni, maydonlarni meros qilib oladi. Meros bo’lib o'tmaydigan yagona narsa bu tayanch sinfning konstruktorlari. Shunday qilib, Vorislik is-a munosabatini amalga oshiradi, Employee sinfining ob'ekti o’z navbatida Person sinfining ham ob'ekti hisoblanadi
    static void Main(string[] args)
    {
    Person p = new Person { Name = "Tom" };
    p.Display();
    p = new Employee { Name = "Sam" };
    p.Display();
    Console.Read();
    }
    Employee sinfining obyekti o’z navbatida Person sinfining ham obyekti bo’lganligi sababli, o'zgaruvchini quyidagicha aniqlay olamiz :
    Person p = new Employee();
    Kelishuv bo’yicha, Vorislik oshkor ravishda ko’rsatilmasa ham, barcha sinflar Object tayanch sinfining vorisi hisoblanadi. Shuning uchun ham, yuqorida keltirilgan Person hamda Employee sinflari o'zlarining metodlaridan tashqari, Ob'ekt sinfining quyidagi metodlariga ham ega: ToString(), Equals(), GetHashCode() va GetType(). Kelishuv bo'yicha barcha sinflar voris qilib olinishi mumkin. Biroq, bu yerda bir qator cheklovlar mavjud: Person va Employee

    • To’plamli vorislik qo'llanilmaydi, sinf faqat bitta sinfdan voris olishi mumkin.

    • Hosilaviy sinfni yaratishda tayanch sinfning kirish kaliti ham hisobga olinilishi zarur, yani hosilaviy sinfning kirish kaliti tayanch sinfniki bilan bir xil bo’lishi yoki undanda cheklovliroq bo'lishi talab etiladi. Ya'ni, agar tayanch sinf
      Download 21,55 Kb.
    1   2   3




    Download 21,55 Kb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    Amaliy mashg’ulot: Umumlashgan turlar vorisligi. Tayanch so`z va iboralar

    Download 21,55 Kb.