子クラスの中で protected メソッドを public メソッドでオーバーライドすると、そのクラスはどこからでもアクセスできるようになってしまいます。 これはカプセル化の原則に違反しており、バッドプラクティスとされています。
protected
public
詳しくは、Method Visibility (php.net) を参照してください。