I. A. Karimov Bugungi kunda insonni uning axborotni qayta ishlash bo'yicha imkoniyatlarini kuchaytiruvchi zamonaviy texnologiyalar bilan qurollantirish axborotlashtirish sanoatini jadal rivojlantirishni talab etu


Download 221.49 Kb.
bet5/8
Sana24.12.2022
Hajmi221.49 Kb.
#1053715
1   2   3   4   5   6   7   8
Bog'liq
Kurs ishiNozima

public int Add(int a, int b)
{
Console.Write("a+b=");
return a + b;
}
public int Add(int a, int b, int c)
{
Console.Write("a+b+c=");
return a + b + c;
}
}
}
Natija:

Yuqoridagi natijadan ko’rinib turibdiki, statik polimorfizmda bitta sinf tarkibida bir xil nomli metodlardan foydalanib turli amallarni bajarar ekanmiz.
Endi dinamik polimorfizmda sinflarni program sinfi bilan bog’lashni ko’raylik:
using System;

namespace KursIshi
{
class Program
{
public static void Main(string[] args)
{
Shakl obj=new Shakl();
obj.Hisoblash();
Kvadrat obj1=new Kvadrat();
obj.Hisoblash();
Doira obj2=new Doira();
obj.Hisoblash();
Console.ReadKey(true);
}
}
class Shakl
{
public void Hisoblash()
{
Console.WriteLine("Men yuzani hisoblayman!");
}
}
class Kvadrat : Shakl
{
public void Hisoblash()
{
Console.WriteLine("Men kvadrat yuzasini hisoblayman");
}
}
class Doira : Shakl
{
public void Hisoblash()
{
Console.WriteLine("Men doira yuzasini hisoblayman");
}
}
}
Natija:

Natijalarimizdan ko’rinib turibdiki, dasturlarimiz to’g’ri ishlayapti. Demak, biz polimorfizmdan to’g’ri foydalanyapmiz.
Yana statik polimorfizm yordamida turli tiplar bilan ishlab ko’raylik:
class Tiplar
{
public void Tip(string s)
{
Console.Write("Siz matn kiritdingiz: "+s);
}
public void Tip(int b)
{
Console.Write("Siz butun son kiritdingiz: "+b);
}
public void Tip(double k)
{
Console.Write("Siz o'nli kasr son kiritdingiz: "+k);
}
}
Yuqorida biz yangi Tiplar nomli sinf va Tip nomli metodlar hosil qildik va metodlarga turli tiplar bilan murojaat qildik. Endi esa bu sinfni program sinfi bilan bog’laymiz:
using System;

namespace KursIshi
{
class Program
{
public static void Main(string[] args)
{
Tiplar obj=new Tiplar();
obj.Tip("Assalomu alaykum!");
obj.Tip(765);
obj.Tip(45.27);
Console.ReadKey(true);
}
}
class Tiplar
{
public void Tip(string s)
{
Console.WriteLine("Siz matn kiritdingiz: "+s);
}
public void Tip(int b)
{
Console.WriteLine("Siz butun son kiritdingiz: "+b);
}
public void Tip(double k)
{
Console.WriteLine("Siz o'nli kasr son kiritdingiz: "+k);
}
}
}
Natija1:

Natijadan ma’lumki, dasturimiz to’g’ri ishladi. Endi qiziqib Tip() metodining turli tiplariga bittadan ortiq murojaat qilsak ham ishlaydimi, shuni tekshirib ko’ramiz:
public static void Main(string[] args)
{
Tiplar obj=new Tiplar();
obj.Tip("Assalomu alaykum!");
obj.Tip(765);
obj.Tip(45.27);
Console.WriteLine();
obj.Tip("Omad sizga yor bo'lsin!!!");
obj.Tip(874);
obj.Tip(34);
obj.Tip(9.54);
Console.ReadKey(true);
}
Yuqorida Main() metodi ichida Tip() nomli metodimizning turli tiplariga bittadan ortiq murojaat qildik va natijada, Natija2:

Natija2 dan ma’lumki, turli tipli metodga bittadan ortiq murojaat qilsak ham dasturimiz ishlaydi.

5-§.Kalit so’zlardan polimorfizmda foydalanish:


OYDda metodlar bilan ishlayotganimizda Overloading va Overriding degan so’zlarga duch kelishingiz mumkin. Bu ikki tushuncha odatda methodlar bilan o’z vazifasini amalga oshiradi. Overloading va Overriding polymorphism ni amalga oshirishnining keng tarqalgan usuli hisoblanadi. Biz hozir Overriding (Qayta yozish) haqida batafsil to’xtalib o’tamiz.


Overriding o’zi nima?
Odatda C# da Overriding haqida gapirilganda, metod Overriding nazarda tutiladi. Overriding bizga strukturani o’zgarishsiz ushlab qolgan holda, logikani o’zgartirish imkoniyatini beradi. Quyida yangi sinf yarataylik va unda overriding ishlatilmasin:
class Funksiya
{

Download 221.49 Kb.

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




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