>  기사  >  백엔드 개발  >  PHP 재로드

PHP 재로드

巴扎黑
巴扎黑원래의
2016-11-11 15:45:081334검색



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 />";



성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:PHP 신속한 개발 IDE다음 기사:PHP 신속한 개발 IDE