6-amaliy Abstrakt sinflar yaratish va ishlatish Nazariy ma’lumot: C# dasturlash tilida sinflar ichida abstrakt sinflar yaratish va ishlatish, kodni abstraktlayish (abstraction) va interfeyslarni amalga oshirish uchun kerak bo'ladi. Abstrakt sinflar, bir sinfni o'zgarishlarga qo'shish va o'zlashtirishni osonlashtirish imkonini beradi. Ular asosiy sinfni (base class) ko'rsatish uchun ishlatiladi, va tur sinflar (derived class) bu asosiy sinfdan meros olib, metodlarni o'zgartirish va abstrakt metodlarni bajarish imkoniyatiga ega bo'ladi. Quyidagi sabablarni o'rganib chiqamiz: 1. Abstrakt sinflar bir qadam: Abstrakt sinflar, ko'p sinflarni o'zlashtirish uchun o'zgarishlarni qo'shishni taqdim etadi. Bu, kodni qayta ishlash va sinflarni boshqa sinflardan tur almashishning bir qismini tashkil etadi. 2. Interfeyslar bilan birlikda ishlatish: Abstrakt sinflar, interfeyslar bilan birgalikda ishlatiladi, bu esa sinflarni o'zlashtirish va tur almashishning yanada amalga oshirilishi uchun ishlatiladi. Masala misol yordamida ko'ramiz: using System; // Abstrakt sinf abstract class Xayvon { public string Ismi { get; set; } public int Yosh { get; set; } public Xayvon(string ismi, int yosh) { Ismi = ismi; Yosh = yosh; } // Abstrakt metod, tur sinflarda belgilanishi shart public abstract void TabiiyHodisalari(); } // Tur sinf (derived class) class Qo'yon : Xayvon { public string Qo'yonYuvashi { get; set; } public Qo'yon(string qo'yonYuvashi) ismi, int yosh, string : base(ismi, yosh) { Qo'yonYuvashi = qo'yonYuvashi; } // Abstrakt metodni o'zgartiramiz public override void TabiiyHodisalari() { Console.WriteLine($"{Ismi} - Qo'yon, {Yosh} yoshda, Yuvash: {Qo'yonYuvashi}"); } } // Tur sinf (derived class) class Tig'r : Xayvon { public string ErUyi { get; set; } public Tig'r(string ismi, int yosh, string erUyi) : base(ismi, yosh) { ErUyi = erUyi; } // Abstrakt metodni o'zgartiramiz public override void TabiiyHodisalari() { Console.WriteLine($"{Ismi} - Tig'r, {Yosh} yoshda, Er uy: {ErUyi}"); } } class Program { static void Main() { Qo'yon yuvasi"); qoyon = new Qo'yon("Sher", 5, "Qo'yon Tig'r tigr = new Tig'r("Tyson", 7, "O'z erkak uy"); qoyon.TabiiyHodisalari(); tigr.TabiiyHodisalari(); } } Ushbu misolda Xayvon abstrakt sinfining uch qator metodni o'zgartirilgan shakli ko'rsatiladi va tur sinflari (Qo'yon va Tig'r) asosiy sinfdan meros olib, abstrakt metodni o'zgartiradi. Abstrakt sinf va abstrakt metodlar orqali sinflarni o'zgartirish va boshqa sinflar yaratishni osonlashtirish mumkin. Masala 1: "Shaxs" sinfini yaratish, uning ismi va yoshi saqlansin. Keyingi tur sinflarni "O'qituvchi" va "O'quvchi" deb yarating. O'qituvchining yillik maoshi va o'quvchi uchun ta'limotlar soni saqlansin. "Shaxs" sinfi abstrakt sinf bo'lsin va har bir tur sinfi "TabiiyHodisalari" deb nomlangan abstrakt metodni o'zgartirsin. Boshqa tur sinflari "Shaxs" sinfiga meros olsin va "TabiiyHodisalari" metodini o'zgartirsin. Masala 2: "Hayvon" sinfini yaratish, uning ismi, turi va yoshi saqlansin. Keyingi tur sinflarni "Qush" va "Maymun" deb yarating. Qushning "Yuvash" va maymunning "Agarlik" deb nomlangan o'z xususiyatlari olsin. "Hayvon" sinfi abstrakt sinf bo'lsin va har bir tur sinfi "TabiiyHodisalari" deb nomlangan abstrakt metodni o'zgartirsin. Boshqa tur sinflari "Hayvon" sinfiga meros olsin va "TabiiyHodisalari" metodini o'zgartirsin. Masala 3: "TransportVasita" sinfini yaratish, uning markasi va modeli saqlansin. "Avtomobil" va "Avtobus" deb nomlangan tur sinflarni yarating, ular "TransportVasita" sinfiga meros olsin. "Avtomobil" sinfiga motor guvohi (misol: "Hatchback") va "Avtobus" sinfiga sayohat joylarining soni (misol: 40) saqlansin. Masala 4: "Garderob" dasturini yaratish. Bu dasturda "Kiyim" va "Ko'ylak" sinflari yaratiladi. "Kiyim" sinfi kiyimning turi (masalan, palto yoki shlyapa) va rangi bilan, "Ko'ylak" sinfi esa "Ko'ylak"ning turi va razmeri bilan taniladi. Har bir sinfning o'ziga xos ma'lumotlarini ko'rsatuvchi abstrakt metodlar yaratish va ularni tur sinflar orqali ishlatish uchun bazi tur sinflari yaratish. Masala 5: "Gul" sinfini yaratish, uning turi va rangi saqlansin. Keyingi tur sinflarni "Gulqanday" va "Gullar" deb yarating. "Gulqanday" sinfi "Balkon" deb nomlangan xususiyatni olsin, "Gullar" sinfi esa "Son" va "Boy" deb nomlangan o'z xususiyatlarni olsin. "Gul" sinfi abstrakt sinf bo'lsin va har bir tur sinfi "TabiiyHodisalari" deb nomlangan abstrakt metodni o'zgartirsin. Boshqa tur sinflari "Gul" sinfiga meros olsin va "TabiiyHodisalari" metodini o'zgartirsin. Masala 6: "Xonadon" dasturini yaratish, uning markasi va modeli saqlansin. Keyingi tur sinflarni "Kiyimxonasi" va "Uyxonasi" deb nomlangan tur sinflari yarating, ular "Xonadon" sinfiga meros olsin. "Kiyimxonasi" sinfiga kiyimlar soni (misol: 100 ta kiyim) va "Uyxonasi" sinfiga o'q o'rni soni (misol: 5 ta o'q o'rni) saqlansin.