Как вызвать `public` метод в php через объектные литералы?
можешь использовать __invoke()public function __invoke($method)
{
      if (!method_exists($this, $method)) {
            throw new BadMethodCallException($method);
      }
      return [$this, $method]();
}
ну и испльзование: $instance = new Test(); $instance($method);
Если я вас правильно понял, то можно примерно так реализовать
<?php
class A
{
    public function a()
    {
        echo "a";
    }
}

class B extends A
{
    public function controll($method)
    {
        if (method_exists($this, $method)) { // проверяем существует ли метод
            $reflectionMethod  = new ReflectionMethod($this, $method);
            if ($reflectionMethod->isPublic()) { // проверка является ли метод публичным
                return $this->$method(); // вызываем функцию
            }
        }
    }
}

$b = new B;
$b->controll("a");