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]

最新文章

  1. 【USACO 2.3】Money Systems(dp)
  2. net命令
  3. scala学习心得3
  4. SharedPreferences的基本数据写入和读取
  5. 《android基于andFix的热修复方案》实战篇
  6. 推荐一个 angular 图像加载插件
  7. 框架基础——全面解析Java注解
  8. cubieboard中使用py-kms与dnsmasq搭建局域网内全自动KMS激活环境
  9. Clone PDB from same CDB
  10. MongoDB笔记(五)深入学习
  11. 【实习记】2014-09-01从复杂到简单:一行命令区间查重+长整型在awk中的bug
  12. groupadd 创建组
  13. elk-filebeat-(效果图示)(四)
  14. NIOS II With uCOSII
  15. 最长子串(FZU2128)
  16. L2与L1正则化理解
  17. Dubbo学习笔记1:使用Zookeeper搭建服务治理中心
  18. git 学习笔记 Git实践
  19. php系统函数-----数组函数
  20. Servlet过滤器Filter和监听器

热门文章

  1. form表单的提交地址一定要是完整的绝对地址
  2. flash代码
  3. css3 伪类
  4. Flask的请求与响应
  5. Arcgis for Js实现graphiclayer的空间查询(续)
  6. 程序员有什么办法能快速梳理java知识点?有这八张图就够了
  7. vue前端开发那些事——前言
  8. JDBC 1 利用Statement对数据库进行增删改查
  9. LA2572 Viva Confetti
  10. 洛谷 P2863 [USACO06JAN]牛的舞会The Cow Prom