<?php class A { const FOO = "bar"; public function getFoo() { echo self::FOO . PHP_EOL; } } class B extends A { const FOO = "baz"; } $a = new A(); $b = new B(); $a->getFoo(); $b->getFoo();
private function foo() { echo __METHOD__, '<br/>'; } public function getFoo() { $this->foo(); static::foo(); } } class A extends ClassStatic { public static function funStatic() { echo __METHOD__, '<br/>'; } } class B extends ClassStatic { protected function foo() { echo __METHOD__, '<br/>'; } } //ClassStatic::who(); //A::who(); $a = new A(); $a->getFoo();//foo被A继承了,所以能调用 $b = new B(); $b->getFoo();//B重定义了方法foo,但是如果是私有的不可调用