close
1.
<?php
class B extends A{
public function e(){
echo 'BB';
}
}
class A{
public function c(){
$this->e();
}
public function e(){
echo 'AA';
}
}
$c=new B();
$c->c();
RESULT::
BB
2.
<?php
class B extends A{
}
class A{
public function c(){
$this->e();
}
public function e(){
echo 'AA';
}
}
$c=new B();
$c->c();
RESULT::
AA
3.
class
A
{
private
function
foo()
{
echo
'A foo()<br/>'
;
}
public
function
test()
{
$
this
->foo();
//调用A类的foo()
static
::foo();
//调用C类的foo(),Fatal error: Call to private method C::foo() from context 'A'
}
}
class
C
extends
A
{
private
function
foo()
{
echo
'C foo()<br/>'
;
}
}
$c =
new
C();
$c->test();
4.
class
A
{
private
function
foo()
{
echo
'A foo()<br/>'
;
}
public
function
test()
{
$
this
->foo();
//如果当前类中有foo且为private,会被运行。否则运行子类的
}
}
class
C
extends
A
{
public
function
foo()
{
echo
'C foo()<br/>'
;
}
}
$c =
new
C();
$c->test();
//A中的foo()为private,运行A的。否则运行C的
全站熱搜