Sobes.tech
Junior

Abstrakt sinf nima?

sobes.tech AI

AIdan javob

Abstrakt sinf — bu toifadagi sinf bo‘lib, uni to‘g‘ridan-to‘g‘ri instansiya qilish mumkin emas, ya’ni uning ob’ektini new yordamida yaratish mumkin emas. U boshqa sinflar (vorislar) uchun asosiy sinf sifatida foydalanish uchun mo‘ljallangan.

Abstrakt sinfning asosiy xususiyatlari:

  • abstract kalit so‘zi bilan e’lon qilinadi.
  • Unda abstrakt va oddiy (aniq) metodlar bo‘lishi mumkin.
  • Abstrakt metodlar abstract kalit so‘zi bilan e’lon qilinadi va ularning tanasi (implementatsiyasi) bo‘lmaydi. Ular voris sinflarda amalga oshirilishi kerak.
  • Konstant qiymatlar va xususiyatlar bo‘lishi mumkin.
<?php

abstract class AbstractClass
{
    // Abstrakt metod — voris sinfda amalga oshirilishi kerak
    abstract protected function abstractMethod();

    // Oddiy metod
    public function concreteMethod()
    {
        echo "Bu konkret metod\n";
    }
}

class ConcreteClass extends AbstractClass
{
    // Abstrakt metodni amalga oshirish
    protected function abstractMethod()
    {
        echo "Bu abstrakt metodning amalga oshirilishi\n";
    }
}

// Abstrakt sinfning ob’ekti yaratilmaydi
// $obj = new AbstractClass(); // Xato

// Konkret sinfning ob’ekti yaratilishi mumkin
$obj = new ConcreteClass();
$obj->abstractMethod();
$obj->concreteMethod();

Abstrakt sinflar bog‘langan sinflar uchun umumiy interfeys va funksionallikni belgilash uchun ishlatiladi, ularning amalga oshirish tafsilotlari aniq voris sinflarga qoldiriladi. Koddan foydalanuvchi nuqtai nazardan, bazaviy abstrakt sinf turi bilan voris sinflar ob’ektlari bilan ishlash mumkin, bu polimorfizmni ta’minlaydi.