php课程 12-39 继承中parent的作用是什么

一、总结

一句话总结:PHP5中使用parent::来引用父类的方法。parent:: 可用于调用父类中定义的成员方法。 parent::的追溯不仅于直接父类。

1、对象链实例?

1.document.body.style.background='#f00';
2.$('.img').show().click(func);
3.$obj->show()->say()->eat()->click();

2、php对象链如何实现?

每个方法中都把$this对象返回了

14     function eat(){
15 echo '<h1>eat</h1>';
16 return $this;
17 }

3、php中的类如何直接调用类里面的方法?

是双冒号调用

类只能去直接调用没有$this(对象的属性,比如方法中要用到属性)的方法,因为没有对象,也就是没有$this
Person::say()

4、如何解决父亲儿子继承父亲之后构造函数重用不够彻底的情况?

在儿子的构造函数中调用父亲的构造函数
parent::__construct($n,$a,$s);

二、继承中parent的作用是什么

1、相关知识

构造方法:
1.__construct();
2.Person(); #如果有一个方法名字与类名相同,则该方法为构造方法

析构方法:
1.__destruct();
2.析构时变量从下往上删

对象链:
1.document.body.style.background='#f00';
2.$('.img').show().click(func);
3.$obj->show()->say()->eat()->click();

属性的作用域:
1.属性的作用域
2.局部变量的作用域

通过类名直接调用方法:
Person::say();  #前提是say方法中不能出现$this本对象

继承特性:
class It extends Person{
    //代码
}

继承关键字:
1.extends
2.parent

封装特性:
1.public
2.protected
3.private

 

2、代码

extends中parent的作用

 <?php
class Person{
public $name; public function __construct($n,$a,$s){
$this->name=$n;
$this->age=$a;
$this->sex=$s;
} public function say(){
echo "<h1>我的名字是: $this->name</h1>";
}
} class It extends Person{
public $program; public function __construct($n,$a,$s,$p){
parent::__construct($n,$a,$s);
$this->program=$p;
} public function develop(){
echo "<h1>{$this->name}正在开发{$this->program}项目</h1>";
}
} $obj=new It('小金',20,'nan','PHP'); $obj->say();
$obj->develop();
?>

对象链实现原理

 <?php
class Person{
public $name; function __construct($n){
$this->name=$n;
} function say(){
echo '<h1>say</h1>';
return $this;
} function eat(){
echo '<h1>eat</h1>';
return $this;
} function sleep(){
echo '<h1>sleep</h1>';
}
} //对象链原理
$obj=new Person('user1');
$obj->say()->eat()->sleep();
?>
 

最新文章

  1. 7.openssl enc
  2. Java虚拟机2:Java内存区域及对象
  3. 代码生成工具——CodeSmith
  4. java中类的创建及初始化过程
  5. 使用 TRegistry 类[1]: 显示各主键下的项
  6. undefined和void
  7. Mysql数据库中的计数器表实时更新
  8. Spring MVC程序
  9. 矢量编程——随着MNIST案例
  10. JavaScript 构造函数 prototype属性和_proto_和原型链 constructor属性 apply(),call()和bind() 关键字this
  11. linux重置密码的方法和用户切换
  12. 为View设置左右切换动画
  13. 只需一行代码!Python中9大时间序列预测模型
  14. SUBMIT WITHOUT ALV
  15. unicode、utf8、字符串字面值
  16. python 全栈开发,Day136(爬虫系列之第3章-Selenium模块)
  17. 逆序对__归并排序__树状数组 Inversions SGU - 180
  18. 使用 http 请求方式获取 eureka server的服务信息
  19. Redis(一) 安装
  20. 【max_result_window大小】 Result window is too large的问题

热门文章

  1. Java基础学习总结(18)——网络编程
  2. XWIKI的搭建
  3. 解决MAC下PHP连接MYSQL错误Warning: mysql_connect(): No such file or directory in conn.php
  4. Scala具体解释---------Scala是什么?可伸展的语言!
  5. jquery easyui 输入框 禁止输入负数 设置属性data-options=&quot;min:0,required:true&quot;
  6. 浅谈 C 语言中模块化设计的范式
  7. 最长回文子串 hihocode 1032 hdu 3068
  8. Windows10 Linux子系统的启用和中文用户名的修改
  9. 学习推荐《Python神经网络编程》中文版PDF+英文版PDF+源代码
  10. 学习《Python数据科学手册》高清中文PDF+高清英文PDF+代码