更改继承的变量名是否仍被视为覆盖?

Is changing inherited variable name is still considred as override?

如上所问,我有一个函数,在基 class 中有一个输入参数。

  1. 是否在派生 class 中覆盖它,但更改变量名称仍被视为 override 而不是 overload ?
    我知道 Java 之类的语言就是这种情况,但是 php 呢?

    abstract public foo($a); --> class A1
    public foo($b){} --> class B1(B1 扩展 A1)

  2. 相同的问题,但情况略有不同: abstract public foo (Vehicle $car) --> class A2
    public foo (Mercedes $myCar) --> class B2(B2 扩展 A2)和(class 梅赛德斯扩展 class 车辆)

  1. 不会产生任何错误,它工作正常。但是不会有两个不同的 foo 方法,只有一个

    摘要class一个{ 抽象 public 函数 foo($a); }

    class B 扩展 A { public 函数 foo($b) {} }

  2. 会产生这个:

PHP Fatal error: Declaration of B::foo() must be compatible with A::foo(Vehicle $a) in /home/test.php on line 11

class Vehicle {}
class Car extends Vehicle {}

abstract class A {
    abstract public function foo(Vehicle $a);
}

class B extends A {
    public function foo(Car $b) {}
}

PHP 中没有重载,只是覆盖