Interfeys toifalari tushunchasi Interfeys toifalarni abstract bazaviy sinflar bilan taqqoslash Maxsus interfeyslarni kiritish


Download 0.77 Mb.
bet17/50
Sana26.01.2023
Hajmi0.77 Mb.
#1129439
1   ...   13   14   15   16   17   18   19   20   ...   50
Bog'liq
MAVZULAR UMUMIY

public class UmumTur
{
..
}

Endi agar shu UmumTur deb atalgan umumlashgan turdan UmumTurVorisi degan voris tur hosil qilmoqchi bo’lsak, quyidagicha ish tutishimiz mumkin:


public class UmumTurVorisi: UmumTur
{
….
}

Nuqta umumlashgan sinfi
Umumlashgan turlardan voris olishni namoyish etish uchun avval Nuqta deb nomlangan umumlashgan sinf yarataylik:
public class Nuqta
{
//Umumlashgan holat ma'lumotlari
private T xKoor;
protected T yKoor;
// Umumlashgan konstruktor
public Nuqta(T xBq, T yBq)
{
xKoor = xBq; yKoor = yBq;
}
// Umumlashgan xossalar
public T X
{
get { return xKoor; }
set { xKoor = value; }
}
public T Y
{
get { return yKoor; }
set { yKoor = value; }
}
// Nuqtani satrga otkazish
public override string ToString() => $"[{xKoor}, {yKoor}]";
// Nuqtani boshlang'ich holatga keltirish
public virtual void KoorBoshi()
{
xKoor = default(T); yKoor = default(T);
}
public void Almashtir()
{
T almash = xKoor;
xKoor = yKoor;
yKoor = almash;
}
}
Bu umumlashgan ikkita koordinatali nuqta (masalan, tekislikdagi nuqta) bilan ishlashga mo’ljallangan bo’lib, bu nuqtaning koordinatalarining toifasi T degan toifa parametri bilan berilgan. Ya’ni biz bu sinfni koordinatalari o’zimiz tanlagan toifaga mansub nuqta ustida ish olib borishda qo’llashimiz mumkin.

FNuqta umumlashgan toifasini Nuqta sinfining vorisi sifatida yaratish
Endi Nuqta toifasidan voris olaylik va bu umumlashgan voris sinf fazodagi nuqtalar bilan, ya’ni koordinatalari 2 ta emas, 3 ta bo’lgan nuqtalar bilan ishlashi ko’zda tutilayotgan bo’lsin.
Xullas, Nuqta umumlashgan toifasidan FNuqta voris toifani quyidagicha hoisl qilish mumkin:
public class FNuqta : Nuqta
{
// Uchinchi koordinata
T zKoor;
// Umumlashgan konstruktor
public FNuqta(T xBq, T yBq, T zBq) : base(xBq, yBq)
{
zKoor = zBq;
}
// Umumlashgan xossa
public T Z
{
get { return zKoor; }
set { zKoor = value; }
}
public override string ToString() => $"[{X}, {yKoor}, {zKoor}]";
public override void KoorBoshi()
{
base.KoorBoshi();
zKoor = default(T);
}

}


Download 0.77 Mb.

Do'stlaringiz bilan baham:
1   ...   13   14   15   16   17   18   19   20   ...   50




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