検索

ホームページ  >  に質問  >  本文

相続問題と解決策

この例では、まず親クラスをインスタンス化しません。次に、サブクラスが親クラスのメソッドをオーバーライドしない場合、$cat1->cry() が親クラスを呼び出します。これはどういう意味ですか? サブクラスのメソッドも記述されていますエコー「動物の鳴き声..」として;?私が理解しているのは、これが事実である場合、それを言っていないということは、あなたがそれを言っていないことを意味するということですか?

3433333.png


小周小周2364日前1066

全員に返信(3)返信します

  • Summer

    Summer2018-07-19 11:45:51

    猫クラスは動物クラスを継承します。猫クラスにcryメソッドがない場合、$cat1->cry()は親クラスのcryメソッドを呼び出し、動物の鳴き声を出力します。 。 catクラスにcryメソッドがある場合、それは親クラスのオーバーライドと呼ばれ、$cat1->cry()はサブクラスのcryメソッドを優先して呼び出してabc

    を出力します。

    返事
    0
  • 无忌哥哥

    无忌哥哥2018-07-19 11:12:39

    サブクラスは親クラスをオーバーライドしません。つまり、サブクラスは親クラスを変更せずに継承するだけです。たとえば、サブクラスは $i を定義せず、親の $i を定義します。クラスはサブクラスで呼び出されます。サブクラスが親クラスをカバーする場合、たとえば、サブクラスで $i=2 が定義されている場合、$i は最終的に 2 になります。

    返事
    0
  • 小周

    そうですね、でも私が質問した方法の範囲もこれを意味しますよね?私が正しく理解していることを証明しますか?

    小周 · 2018-07-19 11:17:09
  • キャンセル返事