PHP类和对象类的继承及重写(方法重写)

通过清心醉

PHP类和对象类的继承及重写(方法重写)

<?php
class  A_class //基类A_class
{
protected  $Number = 2; //定义个保护的成员.
//封装的属性
public function getNumber()
{
return $this->Number; //返回值=protected  $Number的参数
}
public function  main1()
{
return  “基类的方法1”;
}
public function  main2()
{
return  “基类的方法2”;
}
}
$classa = new A_class(); //实例化
echo “A_class基类有”.$classa->getNumber().”个方法 </br>”; //这时会调用return $this->Number;
echo $classa->main1().”</br>”.$classa->main2();echo “</br></br>”;

class B_class extends A_class //A_class的派生类B_class
{
private $name = “子类专有::”; //定义私有成员
public function getName()
{
return $this->name;
}
public function main1() //对main1()函数进行重写.
{
return  $this->name.”子类对基类的方法重写”;
}
public function text()
{
return  “子类自己的方法”;
}
}
$classb = new B_class();//实例化
echo $classb->getName().”B_class子类有”.$classb->getNumber().”个方法</br>”;
//调用派生类的getName()和基类的getNumber()
echo $classb->main1().”</br>” ;
//调用派生类的main1()
echo $classb->main2().”</br>”;
//调用基类的main2()
echo $classb->text();
//调用派生类自己的函数text()

/*
可以这么说:子类可以继承基类的protected保护和public公有的类型,
同时可以自己有新的方法.至于重写:比如文中所说的main1()
基类已经有了,可派生类重写这个函数,
所以当$classb->main1()调用的时候,调用的是派生类的main1()函数

重写方法与访问权限
子类中的覆盖方法不能使用比父类中被覆盖方法更严格的访问权限。
*/
?>

关于作者

清心醉 administrator

发表评论

如果喜欢作者的文章,您可以打赏给作者:

TRC20(虚拟货币):


ERC20(虚拟货币):


Bitcoin(BTC):