zoukankan      html  css  js  c++  java
  • php课程 12-39 继承中parent的作用是什么

    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的作用

     1 <?php 
     2 class Person{
     3     public $name;
     4 
     5     public function __construct($n,$a,$s){
     6         $this->name=$n;
     7         $this->age=$a;
     8         $this->sex=$s;
     9     }
    10 
    11     public function say(){
    12         echo "<h1>我的名字是: $this->name</h1>";
    13     }
    14 }
    15 
    16 class It extends Person{
    17     public $program;
    18 
    19     public function __construct($n,$a,$s,$p){
    20         parent::__construct($n,$a,$s);
    21         $this->program=$p;
    22     }
    23 
    24     public function develop(){
    25         echo "<h1>{$this->name}正在开发{$this->program}项目</h1>";
    26     } 
    27 }
    28 
    29 $obj=new It('小金',20,'nan','PHP');
    30 
    31 $obj->say();
    32 $obj->develop();
    33  ?>

    对象链实现原理

     1 <?php 
     2 class Person{
     3     public $name;
     4 
     5     function __construct($n){
     6         $this->name=$n;
     7     }
     8 
     9     function say(){
    10         echo '<h1>say</h1>';
    11         return $this;
    12     }
    13 
    14     function eat(){
    15         echo '<h1>eat</h1>';
    16         return $this;
    17     }
    18 
    19     function sleep(){
    20         echo '<h1>sleep</h1>';
    21     }
    22 }
    23 
    24 //对象链原理
    25 $obj=new Person('user1');
    26 $obj->say()->eat()->sleep();
    27  ?>
     
  • 相关阅读:
    【华为云技术分享】使用keil5打开GD32F450i的MDK项目出现的问题以及J-Link无法烧录程序对应的解决方案
    【华为云技术分享】不为人知的稠密特征加入CTR预估模型的方法
    205. 判断两个字符串的模式是否相同 Isomorphic Strings
    541. 反转字符串2 Reverse String II
    插入排序,二分查找插入排序,使用二叉树的插入排序
    二分查找,求mid值的类型溢出问题
    二叉搜索树类的C#实现
    二叉搜索树,删除节点
    二叉搜索树的前驱节点和后继节点
    438. 匹配字符串(顺序不同但个数相同的字符串) Find All Anagrams in a String
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/9390004.html
Copyright © 2011-2022 走看看