Если у вас свойство $prop приватно, то объявите setProp тоже приватным. Так ни метод ни свойство не будут доступны в классах-потомках.
Если же вы не знаете, будет ли свойство $prop использоваться в потомках, то лучше сделать его protected, как и метод setProp(). И не стоит тогда использовать final protected function setProp(), вы же не знаете, как это свойство может быть использовано в классе C extends B.
PS Стараюсь использовать protected свойства, так как это дает больше контроля над данными потомкам. При этом, если потомку какое либо свойство не нужно, он к нему просто не обращается.