この例では、まず親クラスをインスタンス化しません。次に、サブクラスが親クラスのメソッドをオーバーライドしない場合、$cat1->cry() が親クラスを呼び出します。これはどういう意味ですか? サブクラスのメソッドも記述されていますエコー「動物の鳴き声..」として;?私が理解しているのは、これが事実である場合、それを言っていないということは、あなたがそれを言っていないことを意味するということですか?
猫クラスは動物クラスを継承します。猫クラスにcryメソッドがない場合、$cat1->cry()は親クラスのcryメソッドを呼び出し、動物の鳴き声を出力します。 。 catクラスにcryメソッドがある場合、それは親クラスのオーバーライドと呼ばれ、$cat1->cry()はサブクラスのcryメソッドを優先して呼び出してabc
サブクラスは親クラスをオーバーライドしません。つまり、サブクラスは親クラスを変更せずに継承するだけです。たとえば、サブクラスは $i を定義せず、親の $i を定義します。クラスはサブクラスで呼び出されます。サブクラスが親クラスをカバーする場合、たとえば、サブクラスで $i=2 が定義されている場合、$i は最終的に 2 になります。
猫クラスは動物クラスを継承します。猫クラスにcryメソッドがない場合、$cat1->cry()は親クラスのcryメソッドを呼び出し、動物の鳴き声を出力します。 。 catクラスにcryメソッドがある場合、それは親クラスのオーバーライドと呼ばれ、$cat1->cry()はサブクラスのcryメソッドを優先して呼び出してabc
を出力します。サブクラスは親クラスをオーバーライドしません。つまり、サブクラスは親クラスを変更せずに継承するだけです。たとえば、サブクラスは $i を定義せず、親の $i を定義します。クラスはサブクラスで呼び出されます。サブクラスが親クラスをカバーする場合、たとえば、サブクラスで $i=2 が定義されている場合、$i は最終的に 2 になります。