DEV Community

Cover image for Abstraktsiya(abstraction) va Interface
Adaxamova Muqaddasxon
Adaxamova Muqaddasxon

Posted on • Updated on

Abstraktsiya(abstraction) va Interface

Abstraction foydalanuvchiga ma'lumotlarning faqatgina muhim qismini ko'rsatib, qolgan ma'lumotlarni yashirish jarayoni hisoblanadi.
Abstraksiyani 2 xil usulda amalga oshirsa bo'ladi:

  1. Abstract class(abstrakt sinf)
  2. 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();
     }
 }
Enter fullscreen mode Exit fullscreen mode

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)
}
Enter fullscreen mode Exit fullscreen mode

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 yoki virtual 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)