PHP 재로드

巴扎黑
풀어 주다: 2016-11-11 15:45:08
원래의
1348명이 탐색했습니다.



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으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿