<?php
//方法的继承(重写 重构)
//1.子类里面的方法会覆盖父类中的同名方法
//2.访问方法的时候 一定是最终结果 被子类覆盖后的结果 但是除了私有的以外
//3.重写的时候建议参数结构(参数的个数,参数的默认值)保持一致
//4.权限只能扩大 不能缩小
// 父类 子类
// public public
// protected public protected
// private public protected private
class A{
private function say($a=10){
echo '我是他爹';
}
//访问方法的时候 一定是最终结果 被子类覆盖后的结果 但是除了私有的以外
public function test(){
$this->say();
}
}
class B extends A{
//子类里面的方法会覆盖父类中的同名方法
public function say($b=20,$c=20){
echo '他不是我爹';
}
}
$obj = new B;
//$obj->say();
$obj->test();点击 "运行实例" 按钮查看在线实例
<?php
//方法的继承(重写 重构)
//1.子类里面的方法会覆盖父类中的同名方法
//2.访问方法的时候 一定是最终结果 被子类覆盖后的结果 但是除了私有的以外
//3.重写的时候建议参数结构(参数的个数,参数的默认值)保持一致
//4.权限只能扩大 不能缩小
// 父类 子类
// public public
// protected public protected
// private public protected private
//5.可以调用父类中的方法 需要使用范围操作符 ::
//A::say() parent::say() parent 代表的是父类
//注意要求: 重写构造方法的时候需要务必将第一个调用父类中的构造方法
class A{
public $name;
public $city;
public function __construct($name,$city){
$this->name = $name;
$this->city = $city;
}
public function say(){
echo '各位以后没事的时候多看看书,看你自己感兴趣的就行 建议少看网络小说';
}
}
class B extends A{
public $age;
public $sex;
public function __construct($name,$city,$age,$sex){
//调用父类中的构造方法
//A::__construct($name,$city);
parent::__construct($name,$city);
//parent 代表的就是你的父类
// $this->name =$name;
// $this->city = $city;
$this->age = $age;
$this->sex = $sex;
}
public function say(){
parent::say();
echo '你可以读读我们的四大名著 我比较喜欢看西游 因为他不是一个神话故事 他是一个职场故事 还有点厚黑的感觉';
}
}
$obj = new B('孙悟空','花果山水帘洞','不详','石猴');
var_dump($obj);
$obj->say();点击 "运行实例" 按钮查看在线实例
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号