ホームページ  >  記事  >  バックエンド開発  >  PHPにおけるメソッドのオーバーライドとはどういう意味ですか?

PHPにおけるメソッドのオーバーライドとはどういう意味ですか?

王林
王林オリジナル
2020-11-04 10:45:012999ブラウズ

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 トレーニング

以上がPHPにおけるメソッドのオーバーライドとはどういう意味ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。