• php类和对象 :继承


    继承 :

    面向对象编程方式最大的优点之一就是,可以使一个类继承并拥有另一个已存在类的成员变量和成员方法,其中被继承的类称为父类,继承的类称为子类。子类继承父类以后便获得父类所有的成员变量和成员方法。通过继承能够提高代码的重用性,以及可维护性。

    通过类的继承,子类不仅可以拥有新定义的成员变量和成员方法,而且还具有父类所有的成员变量和成员方法。语法格式如下:

    class 子类名称 extends 父类名称 {
        //子类的成员变量列表
        function 成员方法1([参数1,参数2,……]){
        //成员方法1的具体实现
        }
        function 成员方法2([参数1,参数2,……]){
        //成员方法2的具体实现
        }
    //其他成员方法
    }

    下面创建一个Student类,使其继承于已经存在的People类,代码如下:

    class People{
        function __construct($name,$age){
            $this->name=$name;
            $this->age=$age;     
        }
        function say(){
            echo "姓名:".$this->name." ";
            echo "年龄:".$this->age;
            echo " ";
        }
        function __destruct(){}
    }
    class Student extends People {
        function study($lang){
            echo "我正在整理".$lang."……";
        }
    }
    $student=new Student("大兵",25);
    $student->say();
    $student->study("PHP基础知识");

    该代码执行结果为:
    姓名:大兵 年龄:25
    我正在整理PHP基础知识……

    parent::关键字

    关键字parent::用来表示父类和要调用的父类中的成员方法,语法格式如下:

    parent::父类的成员方法([参数1,参数2,……])

    下面使用parent::关键字调用父类People中的构造方法的例子,代码如下:

    class People{
        function __construct($name){
            $this->name=$name;   
        }
        function __destruct(){}
    }
    class Student extends People {
        function __construct($name,$age){
            parent::__construct($name);
            $this->age=$age
        }
        function say(){
        echo "姓名:".$this->name." ";
        echo "年龄:".$this->age;
        echo " ";
        }
        function study($lang){
            echo "我正在整理".$lang."……";
        }
        function __destruct(){}
    }
    $student=new Student("大兵",25);
    $student->say();
    $student->study("PHP基础知识");

    该代码执行结果为:
    姓名:大兵 年龄:25
    我正在整理PHP基础知识……

    instanceof运算符

    检测当前对象实例是否属于一个类可以使用instanceof运算符,它将返回一个布尔值,语法格式如下:

    对象名称 instanceof 类名称

    覆盖父类方法

    在子类中可以根据需要对从父类继承来的方法进行覆盖,也叫方法的重写。在进行方法覆盖时要求覆盖方法和被覆盖方法具有相同的方法名称、参数列表和返回值类型。
    下面是实现子类Student覆盖父类People的say()方法的例子,代码如下:

    class People{
        function __construct($name,$age){
            $this->name=$name;
            $this->age=$age;     
        }
        function say(){
            echo "姓名:".$this->name." ";
            echo "年龄:".$this->age;
            echo " ";
        }
        function __destruct(){}
    }
    class Student extends People {
        function say($lang){
            echo $this->name. "正在整理".$lang."……";
        }
    }
    $student=new Student("大兵",25);
    $student->say("PHP基础知识");

    该代码执行结果为:
    大兵正在整理PHP基础知识……

  • 相关阅读:
    NSIS附加数据库,分离数据库脚本代码
    C# 昨天今天明天上周本周下周上月本月下月等日期计算
    NSIS安装MSDE2000和NET2.0脚本代码
    sql 获取指定数据表的所有字段名称的字符串
    如何检测TerraGate的InternetLicense运行是否正常
    Skyline TEP5.1.3二次开发入门——初级(七)
    Skyline软件二次开发初级——2如何在WEB页面中控制三维地图的观察点坐标和角度
    如何实现Skyline与微软bing地图的联动
    Skyline软件二次开发初级——3如何在WEB页面中的三维地图上创建几何对象
    Skyline软件二次开发初级——1如何在web页面中添加控件和加载三维地图数据
  • 原文地址:https://www.cnblogs.com/liqingbo/p/4824493.html
Copyright © 2020-2023  润新知