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  ?>
     
  • 相关阅读:
    设计模式:访问者模式
    设计模式:模板模式
    三分法——求解凸性函数的极值问题——czyuan原创
    素数&&Miller_Rabbin
    【算法入门】深度优先搜索(DFS)
    快速幂取模
    hrbeu1280Turn the corner
    hdoj_3400Line belt
    【专题】三分法和牛顿迭代法总结
    zoj_3203Light Bulb
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/9390004.html
Copyright © 2011-2022 走看看