この記事では主に PHP ポリモーフィック コード例を 2 つ紹介します。必要な方は参考にしてください。
ここに 2 つの例があります:
まず、基本クラスが標準を定義し、サブクラスが独自のルールを実装していることがわかりました。これはポリモーフィズムの要件です。同時に、これは書き換えを満たすためのものであり、実際には、異なるクラスの異なるパフォーマンスであり、インターフェイスや基本クラスのプログラミングを厳密に満たすものではありません。これを呼び出すと、stu->showGrade() ではなく、独自のメソッドになるためです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
クラスの生徒{
パブリック関数 showGrade(){ echo "基本クラス"; }
}
クラスシャオミンはstuを拡張します{
パブリック関数 showGrade(){ エコー「息子ショー80です」; } }
クラス xiaoli は stu を拡張します{
パブリック関数 showGrade(){ エコー「息子ショー60です」; } }
関数 doit($obj){
if(get_class($obj) != "stu"){ $obj->showGrade(); }
}
doit(new xiaoli()); doit(new xiaomin());
|
PHP は型付き言語であるため、実際には Java では次のようになります。オブジェクト変換メカニズムはありません。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
インターフェースアニマル{ 公開関数 voice(); }
クラス猫は動物を実装します{ 公開関数 voice(){ エコー「ミャオ~~~ 」; } }
クラス犬は動物を実装します{ 公開関数 voice(){ エコー「ワン~~~ 」; } }
関数 dovoice(animal $obj){ $obj->voice(); }
dovoice(新しい犬()); dovoice(新しい猫());
|