oop — PHP: Какой лучший способ ввести подсказку для класса в унаследованном методе из родительского класса конкретного класса?

Да, я знаю, этот заголовок полный рот 🙂

Код сделает этот способ более удобочитаемым:

namespace AbstractLevel;

abstract class Bar
{
public function addFoo(Foo $foo)
{
$this->foo = $foo;
}
}

namespace AbstractLevel\ConcreteLevel;

class Bar extends \AbstractLevel\Bar
{
public function addFoo(Foo $foo)
{
parent::addFoo($foo);
}
}

Приведенный выше код должен получить уведомление во время выполнения при создании экземпляра AbstractLevel\ConcreteLevel\Bar класс, потому что addFoo() Метод — это набор текста для другого класса, чем метод его родителя с тем же именем.

Есть ли способ убедиться, что AbstractLevel\ConcreteLevel\Bar::addFoo() печатные буквы для класса AbstractLevel\ConcreteLevel\Foo вместо AbstractLevel\Foo?

0

Решение

Есть ли способ обеспечить …

Вы можете добавить абсолютный путь к классу typehinted:

public function addFoo(\AbstractLevel\ConcreteLevel\Foo $foo)

В настоящее время я не уверен на 100% в ключевом слове. abstract,

вам может понадобиться поместить его туда в первом классе:

abstract class Bar
{
public abstract function addFoo(Foo $foo)
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]