PHP class 继承
2024-09-28 10:19:16
1.执行结果
成员名 |
成员修饰符 |
方法名 |
方法修饰符 |
执行结果 |
name |
private |
setName |
private |
在构造函数函数中执行父类私有方法,子类未能覆盖private成员变量和方法,修改父类的私有变量 |
age |
private |
setAge |
public |
修饰符是public,子类方法覆盖父类方法,修改子类成员变量。但在父类构造其中执行$this->age只能取到父类的age |
local |
public |
setLocal |
public |
子类的方法和成员变量均覆盖了父类对应方法和成员变量 |
hoby |
public |
setLocal |
private |
成员变量被覆盖,当是方法未覆盖 |
2.相关代码
ParentClass.php
<?php
class ParentClass {
private $name;
private $age;
public $local;
public $hoby;
public function __construct() {
print "execute parent construct()<br/>";
$this->setName ();
echo ("name=" . $this->name . "<br/>"); $this->setAge ();
echo ("age=" . $this->age . "<br/>"); $this->setLocal ();
echo ("local=" . $this->local . "<br/>"); $this->setHoby ();
echo ("hoby=" . $this->hoby . "<br/>");
$this->__toString();
}
private function setName() {
$this->name = "parentName";
print "parent setName()\n ";
}
public function setAge() {
$this->age = 50;
print "parent setAge()\n";
}
public function setLocal() {
$this->local = "parent local";
print "parent setLocal()\n";
}
private function setHoby() {
$this->hoby = "parent hoby";
print "parent setHoby()\n";
} public function __toString() {
echo ("Parent[name=" . $this->name . ", age=" . $this->age . ", local=" . $this->local . ", hoby=" . $this->hoby . "]<br>");
}
} ?>
ChildClass.php
<?php
require_once 'ParentClass.php';
class ChildClass extends ParentClass {
private $name;
private $age;
public $local;
public $hoby;
public function __construct() {
print "execute child construct()<br/>";
parent::__construct ();
echo $this->__toString();
}
private function setName() {
$this->name = "childName";
print "child setName()\n";
}
public function setAge() {
$this->age = 20;
print "child setAge()\n";
}
public function setLocal() {
$this->local = "child local";
print "child setLocal()\n";
}
private function setHoby() {
$this->hoby = "child hoby";
print "child setHoby()\n";
}
public function __toString() {
echo ("Child[name=" . $this->name . ", age=" . $this->age . ", local=" . $this->local . ", hoby=" . $this->hoby . "]<br/>");
}
} $child = new ChildClass ();
?>
3.执行输出
execute child construct()
execute parent construct()
parent setName() name=parentName
child setAge() age=
child setLocal() local=child local
parent setHoby() hoby=parent hoby
Child[name=, age=20, local=child local, hoby=parent hoby]
Child[name=, age=20, local=child local, hoby=parent hoby]
最新文章
- 【USACO 2.3】Money Systems(dp)
- net命令
- scala学习心得3
- SharedPreferences的基本数据写入和读取
- 《android基于andFix的热修复方案》实战篇
- 推荐一个 angular 图像加载插件
- 框架基础——全面解析Java注解
- cubieboard中使用py-kms与dnsmasq搭建局域网内全自动KMS激活环境
- Clone PDB from same CDB
- MongoDB笔记(五)深入学习
- 【实习记】2014-09-01从复杂到简单:一行命令区间查重+长整型在awk中的bug
- groupadd 创建组
- elk-filebeat-(效果图示)(四)
- NIOS II With uCOSII
- 最长子串(FZU2128)
- L2与L1正则化理解
- Dubbo学习笔记1:使用Zookeeper搭建服务治理中心
- git 学习笔记 Git实践
- php系统函数-----数组函数
- Servlet过滤器Filter和监听器