PHP 重載

巴扎黑
發布: 2016-11-11 15:45:08
原創
1341 人瀏覽過



PHP 重載

一個類別中的方法與另一個方法同名,但是參數不同,這種方法稱之為重載方法。

很遺憾因為PHP 是弱型別的語言, 所以在方法的參數中本身就可以接收不同類型的數據,又因為PHP 的方法可以接收不定個數的參數,所以在PHP 裡面沒有嚴格意義上的方法重載。

PHP 中的重載是指在子類別裡面定義了一個和父類別同名的方法,並且該方法將在子類別中將把父類別的方法覆寫。

在子類別中,因為從父類別繼承過來的方法可能無法存取子類別定義的屬性或方法,所以有時候重載是必要的。

範例:

<?php
class Person {
    var $name;
    var $age;
    function say() {
        echo "我的名字叫:".$this->name."<br />";
echo "我的年龄是:".$this->age;
    }
}
// 类的继承
class Student extends Person {
    var $school;    //学生所在学校的属性
    function say() {
        echo "我的名字叫:".$this->name."<br />";
        echo "我的年龄是:".$this->age."<br />";
        echo "我正在".$this->school."学习";
    }
}
$t1 = new Student();
$t1->name = "张三";
$t1->age = "18";
$t1->school = "人民大学";
$t1->say();
?>
运行该例子,输出:
我的名子叫:张三
我的年龄是:18
我正在人民大学学习
提示
如果父类定义方法时使用了 final 关键字,则不允许被子类方法覆盖。
访问父类被覆盖的方法
可以通过 :: 符号来访问父类被覆盖的方法或成员属性:
function say() {
    parent::say();
    //或者
    Person::say();
    echo "我在".$this->school."上学<br />";
登入後複製



相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板