Sobes.tech
Middle

Mücərrəd sinif özəl metod daxil edə bilər və niyə?

sobes.tech Süni İntellekt

AI-dan cavab

Bəli, mümkündür.

Abstrakt sinifdəki xüsusi metod yalnız həmin abstrakt sinif daxilində görünür və ona çıxış mümkündür. Bu, digər metodların işləməsi üçün lazım olan daxili məntiqi həyata keçirməkdə faydalı ola bilər (məsələn, köməkçi əməliyyatlar üçün), və bu məntiqi miras alan siniflərdən gizləyir.

Yenidən üst-üstə yazıla bilən və ya törəmə siniflərdə istifadə ediləcək metodlar protected və ya public kimi elan edilir.

<?php

abstract class AbstractExample {
    abstract public function doSomething();

    private function internalHelper() {
        // Xüsusi metod, yalnız AbstractExample daxilində görünür
        echo "Daxili əməliyyatı yerinə yetirirəm.\n";
    }

    protected function protectedHelper() {
        // Mühafizə olunan metod, həmçinin miras alan siniflərdə görünür
        $this->internalHelper(); // Daxili metod çağırışı
        echo "Mühafizə olunan əməliyyatı yerinə yetirirəm.\n";
    }
}

class ConcreteExample extends AbstractExample {
    public function doSomething() {
        echo "Xüsusi bir şey edirəm.\n";
        $this->protectedHelper(); // protected metoda giriş
        // $this->internalHelper(); // Xəta: xüsusi metoda giriş yoxdur
    }
}

$obj = new ConcreteExample();
$obj->doSomething();