say
方法的访问权限是public
时输出:BB
<?php
class A
{
public function __construct()
{
var_dump($this);
$this->say();
}
private function say()
{
echo __CLASS__;
}
}
class B extends A
{
public function say()
{
echo __CLASS__;
}
}
$b = new B();
---------- Debug PHP ----------
object(B)#1 (0) {
}
A
输出完成 (耗时 0 秒) - 正常终止
我将代码改成这样, 但是var_dump
出来的对象是B, 为什么调用的还是A的方法?
多看文档
注意关键点, [子类就会继承父类所有公有的和受保护的方法], 也就是说, 当方法为
public
的时候, 子类覆盖了父类的say
, 当方法为private
时, 子类不会覆盖父类的方法还有, 你给的示例代码, 第二段并没有
private
http://php.net/manual/zh/lang...
额, 感谢采纳, 受之有愧. 对于修改后的问题, 只是有些猜想的评论里, 期待大神解答