Sobes.tech
Middle

Оё синфи абстракт метавонад усули хусусиро дар бар гирад ва чаро?

sobes.tech AI

Ҷавоб аз AI

Бале, мумкин.

Абстракт синфдаги хусусий метод фақат ўзида кўриниб ва кириш мумкин. Бу ички логикани амалга оширишда фойдали бўлиши мумкин, бу логика бошқа методларининг ишлашини таъминлайди (масалан, ёрдамчи операциялар учун), ва бу логика мерос олувчи синфлардан яширилади.

Қайта ёзилиши ёки мерос олувчи синфларда фойдаланиши керак бўлган методлар protected ёки public сифатида эълон қилинади.

<?php

abstract class AbstractExample {
    abstract public function doSomething();

    private function internalHelper() {
        // Хусусий метод, фақат AbstractExample ичида кўриниб туради
        echo "Ички операцияни бажаряпман.\n";
    }

    protected function protectedHelper() {
        // Ҳимояланган метод, ҳамда мерос олувчи синфларда кўриниб туради
        $this->internalHelper(); // Хусусий методни ичкидан чақириш
        echo "Ҳимояланган операцияни бажаряпман.\n";
    }
}

class ConcreteExample extends AbstractExample {
    public function doSomething() {
        echo "Нақд бир нарсани қиламан.\n";
        $this->protectedHelper(); // protected методга кириш
        // $this->internalHelper(); // Хатолик: хусусий методга кириш йўқ
    }
}

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