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的
arrow
arrow
    全站熱搜

    學習程式 發表在 痞客邦 留言(0) 人氣()