设$ this指的是初始化的类,而不是它编码的类

I have a function in a parent class that calls several functions in the parent class using $this->functionName(). In a child I override functionName. When I run it still calls as if it was parent::functionName():

class Foo {

    function MainCall(){
        $this->Bard();
    }

    private function Bard(){
        echo "HI";
    }
}

class Bar extends Foo {

    private function Bard(){
        echo "bye";
    }
}

$dnew = new Bar();
$dnew->MainCall();

The above code run and echos "HI" but I want bye.