• 0605-类的继承、重写、parent、final


    定义一个子类(man)

     1 //定义一个类
     2 class renlei{
     3     var $name = '王五';
     4     var $age =  '';
     5     var $sex = '';
     6     var $todo = '';
     7     function showInfo(){
     8         echo '姓名:'.$this->name.'<br>年龄:'.$this->age.'<br>性别:'.$this->sex.'<br>做了什么:'.$this->todo;
     9     }
    10     function cself(){
    11         return new self;
    12     }
    13 }
    14 //定义一个继承于renlei类的类
    15 class man extends renlei{
    16     
    17 }
    18 //实例化一个man类下的对象
    19 $wbl = new man();
    20 $wbl->showInfo();

    父类和子类的关系:

      1.子类继承父类的全部信息,同时可以扩展自己的特征信息;如果没有扩展,继承也就没有了意义

      2.父类(基类)  派生  子类(派生类)。

      3.单继承:一个父类可以有多个子类,但一个子类只能有一个直接父类(可以有多级父类--多级继承)。

    类中成员的修饰符及作用范围:

    范围

    本类内

    继承关系类内

    类外

    public

    可以

    可以

    可以

    protected

    可以

    可以

    不可以

    private

    可以

    不可以

    不可以

    关键字:parent(parent::类成员):

      parent通常用于在子类中调用父类的成员的时候使用,多数通常就是使用父类的“静态类”成员(因为parent代表的类,而非对象

    重写:override

      定义:发生在继承里。将从父类继承下来的属性或方法重新“定义”

      方法的参数形式:应该跟父类的一致(构造方法除外,可以不一致)。

    私有属性和私有方法的重写问题:私有属性和方法都不能覆盖,但其实子类可以定义跟父类私有的同名属性或方法。只是当作一个自身的新的属性或方法来看待而已。不过方法的参数必须一致。

    关键词:final

      如果某个类不希望对其进行扩展,则可以将其声明为“最终类”。

        形式:final  class  类名{ 。。。。类定义。。。。}

      如果某个方法不希望被下级类覆盖,就可以对其生命为“最终方法”。

        形式:final  function  方法名(){。。。。方法定义。。。。}

    构造方法析构方法在继承中的表现:

      1.子类中没有定义构造方法时,会自动调用父类的构造方法。因此实例化子类时,需按照父类的构造方法的形式进行(注意参数)。

      2.子类定义了自己的构造方法,则不会自动调用父类的构造方法,但可以手动调用:parent::__construct();

     1 //定义一个human类下的子类
     2 class man extends human{
     3     public $m1 = "" ;
     4     //手动调用父类的构造方法
     5     function __construct($name,$m1){
     6         parent::__construct($name);
     7         $this->m1 = $m1;
     8     }
     9 }
    10 //实例化一个man类下的对象
    11 $wbl = new man('xiaoming',18);
    12 echo $wbl->name;
    13 echo $wbl->m1;
  • 相关阅读:
    数据结构 课程安排 (拓扑排序)
    数据结构 通畅工程 (最小生成树)
    01 C#基础
    计算机组成原理——第一章 系统概述
    数据结构——第八章 排序 第九章 文件
    数据结构——第七章 查找
    字符编码(转)
    数据结构——第六章 图
    NodeJS加密算法(转)
    入职总结
  • 原文地址:https://www.cnblogs.com/flypea93/p/9139945.html
Copyright © 2020-2023  润新知