How to overwriting inherited class methods in PHP

2 Answers

0 votes
class Test 
{
    public $pr = "Class property from class Test";
    
    public function __construct()
    {
        echo 'Constructor activated from class Test <br />';
    }
      
    public function __destruct()
    {
        echo '<br /> Destructor activated from class Test <br />';
    }
    
    public function setProperty($val)
    {
        $this->pr = $val;
    }
    
    public function getProperty()
    {
        return $this->pr;
    }

    public function f()
    {
        echo "Method f() from class " . __CLASS__ . "<br />";
    }
}
  
class MyNewClass extends Test
{
    // Declaring __construct() method again in MyNewClass to overwrite
    public function __construct()
    {
        echo 'Constructor activated from class MyNewClass <br />';
    }
}
 
   
$obj1 = new MyNewClass;

$obj1->f();


/*
run:

Constructor activated from class MyNewClass 
Method f() from class Test

Destructor activated from class Test 

*/

 



answered Nov 3, 2015 by avibootz
edited Nov 3, 2015 by avibootz
0 votes
class Test 
{
    public $pr = "Class property from class Test";
    
    public function __construct()
    {
        echo 'Constructor activated from class Test <br />';
    }
      
    public function __destruct()
    {
        echo '<br /> Destructor activated from class Test <br />';
    }
    
    public function setProperty($val)
    {
        $this->pr = $val;
    }
    
    public function getProperty()
    {
        return $this->pr;
    }

    public function f()
    {
        echo "Method f() from class " . __CLASS__ . "<br />";
    }
}
  
class MyNewClass extends Test
{
    // Declaring __construct() method again in MyNewClass to overwrite
    public function __construct()
    {
        echo 'Constructor activated from class MyNewClass <br />';
    }
    // Overwriting Inherited method f()
    public function f()
    {
        echo "Method f() from class " . __CLASS__ . "<br />";
    }  
}
 
   
$obj1 = new MyNewClass;

$obj1->f();


/*
run:

Constructor activated from class MyNewClass 
Method f() from class MyNewClass

Destructor activated from class Test 

*/

 



answered Nov 3, 2015 by avibootz

Related questions

1 answer 328 views
1 answer 188 views
2 answers 222 views
222 views asked Oct 4, 2017 by avibootz
2 answers 266 views
2 answers 310 views
310 views asked Nov 4, 2015 by avibootz
1 answer 187 views
187 views asked Nov 4, 2015 by avibootz
...