>백엔드 개발 >PHP 문제 >PHP에서 메소드 재정의는 무엇을 의미합니까?

PHP에서 메소드 재정의는 무엇을 의미합니까?

王林
王林원래의
2020-11-04 10:45:013094검색

PHP에서 메서드 재정의는 하위 클래스가 상위 클래스로부터 일부 메서드를 상속받은 후 하위 클래스가 내부적으로 동일한 메서드를 정의하고 이 새로 정의된 메서드가 상위 클래스에서 상속된 메서드를 재정의한다는 의미입니다. 내부적으로 정의된 메서드를 메서드 재정의라고 합니다.

PHP에서 메소드 재정의는 무엇을 의미합니까?

메서드 재작성:

하위 클래스가 상위 클래스의 일부 메서드를 상속하고 하위 클래스가 내부적으로 동일한 메서드를 정의하면 새로 정의된 이 메서드가 상속된 상위 클래스 메서드를 재정의할 수 있음을 의미합니다. 내부적으로 정의된 메서드만 호출하세요.

(권장 튜토리얼: java 비디오 튜토리얼)

요구사항:

1. 상위 클래스와 하위 클래스에 정확히 동일한 매개변수와 이름을 가진 메소드가 있는 경우 하위 클래스 메소드가 상위 클래스 메소드를 대체합니다. .

메서드 적용 범위를 달성하려면 매개변수가 일관되어야 합니다. 매개변수 수가 일치하지 않으면 오류가 보고됩니다(위에 언급된 메소드의 오버로드가 포함됨). 메서드 이름이 일관되지 않으면 덮어쓰이지 않고 하위 클래스의 새로 정의된 메서드만 덮어쓰게 됩니다.

2. 메서드 적용 범위를 구현할 때 액세스 한정자는 다를 수 있지만 하위 클래스의 액세스 범위는 상위 클래스의 액세스 범위보다 크거나 같아야 합니다.

이것은 아마도 PHP와 같은 언어의 설계 규칙일 것입니다. 내가 이해하는 바는 더 높은 수준의 항목에 액세스하는 것이 더 쉽다는 것입니다. 더 낮은 수준의 항목에 액세스하려면 더 높은 권한이 있어야 합니다.

매개변수와 이름이 동일해야 합니다. 하위 클래스의 이름이 상위 클래스의 이름과 같을 필요는 없습니다.

매개변수와 이름이 동일해야 합니다. 특히 매개변수 이름이 아닌 상위 클래스와 매개변수 수가 동일해야 합니다. 즉, 전달된 매개변수의 이름은 전달된 숫자가 동일한 한 임의적일 수 있습니다.

예:

<?php
class  shao
{
    public function sasa($name){
        echo $name,&#39;狗!<br/>&#39;;
    }
}
class zhen extends shao{
    public function aaa()
    {
        echo &#39;猫<br/>&#39;;
    }
}
$lli = new zhen();
$lli->aaa();
$lli->aaa(&#39;binghh&#39;);
?>
<?php
class fu
{
    public function text(){
        echo &#39;父类&#39;;
    }
    public  function  textt(){
        echo &#39;父亲&#39;;
}
}
class erzi extends fu{
    public function text()
    {
        parent::text();//我要父类的东西
        echo &#39;儿子&#39;;//重写

    }
}
$shili = new fu();
$erzi = new erzi();
$erzi->text();
?>

관련 권장 사항: php training

위 내용은 PHP에서 메소드 재정의는 무엇을 의미합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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