24-mavzu. Polimorfizm


Download 126.11 Kb.
bet5/7
Sana18.10.2023
Hajmi126.11 Kb.
#1707595
1   2   3   4   5   6   7
Bog'liq
30-maruza

public class Rectangle : Drawing

  • {

  • public double Height { getset; }

  • public double Width { getset; }

  • public Rectangle()

  • {

  • Height = 5.3;

  • Width = 3.4;

  • }

  • public override double Area()

  • {

  • return Height * Width;

  • }

  • }



  • class Program

  • {

  • static void Main(string[] args)

  • {



  • Drawing circle = new Circle();

  • Console.WriteLine("Area :" + circle.Area());



  • Drawing square = new Square();

  • Console.WriteLine("Area :" + square.Area());



  • Drawing rectangle = new Rectangle();

  • Console.WriteLine("Area :" + rectangle.Area());

  • }

  • }


    Kompilyator Area() usulini talab qiladi va u muvaffaqiyatli kompilyatsiya qiladi, lekin Area() usulining to'g'ri versiyasi kompilyatsiya vaqtida aniqlanmaydi, lekin ish vaqtida aniqlanadi. Nihoyat, bekor qilish usullari asosiy sinf usulida aniqlangan virtual yoki mavhum usul bilan bir xil nom va imzoga (parametrlar soni va turi) ega bo'lishi va u olingan sinfda bekor qilinishi kerak.
    Asosiy sinfning usuli yoki funksiyasi "almashtirish" kalit so'zidan foydalanmasdan bola (hosil bo'lgan) sinf uchun mavjud. Kompilyator asosiy sinfning funktsiyasi yoki usulini yashiradi. Ushbu tushuncha soya yoki usulni yashirish sifatida tanilgan. Bu yerda siz bekor qilish va soya qilish o'rtasidagi farqni topishingiz mumkin.
    Derived class virtual a'zolarni bekor qilishini oldini olish
    Virtual a'zolar cheksiz "virtual" bo'lib qoladilar. Boshqacha qilib aytganda, virtual a'zolar virtual a'zolar va uni dastlab e'lon qilgan sinf o'rtasida qancha sinf bo'lishidan qat'i nazar, "virtual" bo'lib qoladi. Misol uchun, agar X sinfi "A" virtual usuliga ega bo'lsa va Y sinfi X dan va Z sinfi Y dan olingan bo'lsa, Z sinfi "A" virtual usulini meros qilib oladi va uni bekor qiladi.


    1. Download 126.11 Kb.

      Do'stlaringiz bilan baham:
  • 1   2   3   4   5   6   7




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