php笔记

PHP 类的继承

PHP 类的继承是指建立一个新的派生类,从一个或多个先前定义的类中继承数据和方法,而且可以重新定义或加进新数据和方法,从而建立了类的层次或等级。

我们称已存在的用来派生新类的类为父类,由已存在的类派生出的新类为子类。继承是面向对象的三大特性之一。

通过继承机制,可以利用已有的数据类型来定义新的数据类型。所定义的新的数据类型不仅拥有新定义的成员,而且还同时拥有旧的成员。

注意:不同于 Java 等语言,在 PHP 中,一个类只能直接从一个类中继承数据,即单继承。

使用 extends 关键字来定义类的继承:

class 子类 extends 父类{
}

例子:

<?php
class Person {
    var $name;
    var $age;

    function say() {
        echo "我的名字叫:".$this->name."<br />";
    echo "我的年龄是:".$this->age;
    }
}

// 类的继承
class Student extends Person {
    var $school;    //学生所在学校的属性
    
    function study() {
        echo "我的名子叫:".$this->name."<br />";
        echo "我正在".$this->school."学习";
    }        
}

$t1 = new Student();
$t1->name = "张三";
$t1->school = "人民大学";
$t1->study();
?>

 

 



$this -> 定义一个语法结构 如下例子

class User
{
public $name;
function getName()
{
echo $this->name;
}
}
//如何使用呢?
$user1 = new User();
$user1->name = '张三';
$user1->getName(); //这里就会输出张三!
$user2 = new User();
$user2->name = '李四';
$user2->getName(); //这里会输出李四! 

 


从PHP5.0版本开始,对象声明时需要声明对象属性和方法的可见性,public关键字表示属性或方法是公开可见的。

在PHP5.0之前未支持对象属性和方法的可见性定义,默认所有的属性和方法都是公开可见的,如以下的对象声明:
//例1

 

class Obj {
    var $name = 'Obj';
    function getName() {
        return $this->name;
    }
}

 

 

 


而PHP5开始推荐写法为:

//例2

class Obj {
    protected $name = 'Obj';
    public function getName() {
        return $this->name;
    }
}

 


对于例1来说,实际上可以直接访问name属性,从而绕过getName方法,如

$obj = new Obj();
echo $obj->name;

 


而对于例2来说,由于$name属性是protected(受保护的),因此必须使用getName方法才能得到$name属性的值。

同时这也是面向对象语言通用的一种声明方式。

public: 公开可见

protected: 对象内部可见 (该对象的子对象同样可以访问)

private: 对象自身内部可见 (不包含该对象的子对象,或者说private属性和方法不会被继承)

posted @ 2017-03-02 09:48  Khazix  阅读(186)  评论(0)    收藏  举报