nome da classe no método junto com a variável

Estou lendo sobre padrões de design em PHP e continuo vendo a seguinte sintaxe, por exemplo

abstract class AbstractObserver {
    abstract function update(AbstractSubject $subject_in);
}

ou

class PatternObserver extends AbstractObserver {
    public function __construct() {
    }
    public function update(AbstractSubject $subject) {   
    }
}

(o código faz parte deesta exemplo)

onde "AbstractSubject" é outra classe abstrata.

Estou acostumado a definir métodos comomethodName($var), sem incluir um nome de classe, comomethodName(className $var).

Então, o que realmente o nome da classe faz em um método? Meu melhor palpite é que ele passa algo como uma referência nessa classe? Você pode me explicar o que realmente faz?

obrigado

questionAnswers(1)

yourAnswerToTheQuestion