Vorislik asoslari.
C# vorislikni qo’llab, bildirilgan sinfni boshqa sinfga o’rnatishga yo’l beradi. Bu baza sinfi masalalarini berilgan hosila sinfi orqali amalga oshirish mumkin. Buni misollar orqali ko’rish qulaydir. Umumlashtirilgan ikki o’lchamli geometrik figuralar (masalan, kvadrat, to’g’ri burchak, uchburchak va boshqalar) atributlarini belgilovchi TwoDShare sinfini ko’rib chiqamiz.
G’G’ Klass dvumerno’x ob’ektov.
class TwoDShape {
public double width;
public double height;
public void showDim( ) {
Console.WriteLine ("Shirina i vo’sota ravno’ " Q
width Q " i " Q height);
}
}
TwoDShare sinfi ikki o’lchamli ob’eklarning maxsus shakllarini tasvirlashda o’z navbatida boshqa sinflar uchun baza sifatida qo’llanishi mumkin. Masalan, TwoDShare sinfini navbatdagi programmasi Triangle sinfini boshqarish uchun qo’llaniladi.
G’G’ Prostaya ierarxiya klassov.
using System;
G’G’ Klass dvumerno’x ob’ektov.
class TwoDShape {
public double width;
public double height;
public void showDim() {
Console.WriteLine("Shirina i vo’sota ravno’ " Q
width Q " i " Q height); }
}
G’G’ Klass Triangle vo’voditsya iz klassa TwoDShape.
class Triangle : TwoDShape {
public string style; G’G’ Tip treugolnika.
G’G’ Metod vozvrahaet plohad treugolnika,
public double area() {
return width * height G’2;
}
G’G’ Otobrajaem tip treugolnika.
public void showStyle() {
Console.WriteLine("Treugolnik " Q style);
}
}
class Shapes {
public static void Main() {
Triangle t1 q new Triangle();
Triangle t2 q new Triangle();
t1.width q4.0;
t1.height q 4.0;
t1.style q "ravnobedrenno’y";
t2.width - 8.0;
t2.height q12.0;
t2.style q "pryamougolno’y";
Console.WriteLine("Informatsiya o t1: ");
tl.showStyle() ;
tl.showDim() ;
Console.WriteLine("Plohad ravna " Q t1.area());
Console.WriteLine();
Console.WriteLine("Informatsiya o t2: ");
t2. ShowStyle() ;
t2. showDim() ;
Console.WriteLine("Plohad ravna " Q t2.area());
}
}
Triangle sinfida TwoDShare sinfiga mansub bo’lgan ob’ektni maxsus shakli tashkil etiladi, masalan, uchburchak. Triangle sinfida TwoDShare sinfidagi elementlardan tashqari Style, area va showstyle elementlarini o’z ichiga oladi. O’zgaruvchan style uchburchak shaklini tasvirlashni saqlaydi, area() usul uning yuzasini aniqlaydi, showStyle() usuli esa berilgan uchburchak shaklini aks ettiradi. Quyida Triangle sinfini TwoDShape sinfidan hosila sifatida qo’llanishi sintaksisi keltirilgan:
Class Triangle : TwoDShape
Agar bir sinf boshqasini qoldirsa, u holda baza sinfini nomi hosila sinfini nomidan keyin ko’rsatiladi va sinflar nomi ikki nuqta bilan ajratilib ko’rsatiladi. C# da sinflarni sintaksis vorisligi eslab qolish va qo’llash uchun juda oddiydir.
Triangle sinfi TwoDShape baza sinfini barcha a’zolarini kiritadi va width va height a’zolarini area () usuli ichida ishlatishi mumkin. Bundan tashqari, Main () usuli ichida t1 va t2 ob’ektlar Triangle sinfini qismi bo’lsa, width va height a’zolarida to’g’ridan-to’g’ri izohlanishi mumkin.
Triangle sinfini TwoDShape sinfiga qo’shilishi quyidagi rasmda sxematik tarzda keltirilgan.
TwoDShape
| Width | Tringle |
Height
|
ShowDim()
|
|
Style
|
|
Area
|
|
ShowStyle()
|
TwoDShape sinfi Triangle sinfi uchun baza sinfi bo’lib, bu butunlay mustaqil va avtonom sinfdir.
Hosila sinfini yaratishda faqat bitta baza sinfini ko’rsatish mumkin. C# da (C dan farqli) bitta hosila sinfida bir nechta baza sinflari vorislikni ta’minlamaydi. Bu faktni C kodni C# ga o’tkazishda bilish kerak. Bir hosila sinfi boshqa hosila sinfiga baza bo’lganligidan bir ierarxiya vorislikni yaratish mumkin. Lekin bitta sinf o’ziga –o’zi baza sinfi bo’lishi mumkin emas.
Vorislikning asosiy xususiyati shundaki,ko’p ob’ektlar uchun umumiy atributlarni aniqlovchi baza sinfini hoxlagan sondagi maxsus hosila sinflarini yaratish uchun qo’llash mumkin. Keyin har bir hosila sinfi uchun xususiy klassifikatsiya yaratish mumkin. Masalan, twoDShape sinfi baza sifatida hosila sinfini yaratishi mumkin.
Do'stlaringiz bilan baham: |