首页 > Web开发 > 详细

php类和对象 :继承

时间:2015-09-20 23:37:42      阅读:299      评论:0      收藏:0      [点我收藏+]

继承 :

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

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

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基础知识……

php类和对象 :继承

原文:http://www.cnblogs.com/liqingbo/p/4824493.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!