class A
{
public function x()
{
echo "Public function in class A<br />";
}
private function y()
{
echo "Private function in class A<br />";
}
public function expose()
{
$this->x();
$this->y();
}
}
class B extends A
{
public function x()
{
echo "Public function in class B<br />";
}
private function y()
{
echo "Private function in class B<br />";
}
}
$y = new A;
$y->expose();
$z = new B;
$z->expose();
クラス A のインスタンス化により、次の結果が生成されます。「クラス A のパブリック関数 クラス A のプライベート関数」
クラス B のインスタンス化により、次の結果が生成されます。「クラス B のパブリック関数 クラス A のプライベート関数」
クラスBのインスタンス化の結果を説明できる人はいますか? クラスAの親メソッドではなく、「B」のプライベートメソッドを呼び出すべきではありませんか?