Abstraction foydalanuvchiga ma'lumotlarning faqatgina muhim qismini ko'rsatib, qolgan ma'lumotlarni yashirish jarayoni hisoblanadi.
Abstraksiyani 2 xil usulda amalga oshirsa bo'ladi:
- Abstract class(abstrakt sinf)
- Interface(Interfeys)
Abstract class
Abstract class - bu imkoniyati cheklangan class hisoblanib, undan obyekt olib bo'lmaydi va ichida hech qanday implementation bo'lmaydi. Undan foydanalish uchun undan voris olish lozim bo'ladi.
Abstract method
Abstract method - faqatgina abstract class ichida ishlaydi lekin uning tanasi bo'lmaydi.
Abstract class ichidagi abstrakt metodlarni voris classlar
override
qilishga majbur. Agarda override qilinmasa, syntax xato hisoblanadi.
using System;
// abstrakt class 'Hayvonlar'
public abstract class Hayvonlar
{
// abstrakt metod 'Ovoz()'
public abstract void Ovoz();
}
// class 'Hayvonlar' dan olingan voris class 'Sigir'
public class Sigir : Hayvonlar
{
// Qayta ishlangan 'Ovoz()' metodi
public override void Ovoz()
{
Console.WriteLine("Moo");
}
}
class Program
{
static void Main(string[] args)
{
// Sigir obyektini yaratish
Sigir sigir_obj = new Sigir();
// abstrakt metodni chaqirish
sigir_obj.Ovoz();
}
}
Interface
Interface - abstractga erishishning boshqa usuli hisoblanadi va tanasi faqat abstract methodlar va propertylardan tashkil topgan bo'ladi. Interfacelar ichidagi methodlar va propertylarni access modifier(private, public, protected)lari bo'lmaydi, chunki by default barchasi public hisoblanadi.
C#da interfacelar oldidan doim "I" yoziladi.
interface IAnimal
{
void animalSound(); // interface method (does not have a body)
void run(); // interface method (does not have a body)
}
Xulosa qilib aytganda:
- Classlar ichida qandaydur data, property va methodlar saqlaydi, shuning uchun u abstract class bo'ladimi yoki oddiy classmi, ulardan voris olinadi.
- Abstract method ichida
static
yokivirtual
modifierlarini ishlatish xato hisoblanadi. Chunki uningsiz ham abstractdan voris olinganda tabiiy ravishda override qilinishi kerak.- Interfacelar tarkibi faqatgina declarationdan iborat bo'lganligi sababli ular implement qilinadi.
- Interfacelar ko'pincha contract deb ham nomlanadi.
Top comments (0)