PHP継承
3479 ワード
PHP継承
これは2日前に更新されたはずなので、遅い更新ですが、私は英語の4級を過ぎたことがありません.いいえ、ありません.いいえ、ありません.私の気持ちが落ち込んだので、何日かゲームをしました.いや、何日か反省して、痛いのはどうですか.
以下はすべて私個人の理解で、間違いがあるところはまだ教えてほしいです.なぜ継承が必要なのですか?継承とは、子クラスがextends親クラスを介して親クラスの属性とメソッドを継承することです.もし今2つのクラスを書く必要があるとしたら、小学生クラスと高校生クラス、小学生は話すことができて、歩くことができて、試験、高校生も話すことができて、試験、もしあなたが2回話すことを書いて、歩くことができて、試験、それでは太っているように見えて、管理するのも面倒で、もし1つのクラスを定義して学生クラスが話すことを含んで、歩くことができて、試験、そして小学生類と高校生類にこの学生類を継承させると、例えばこうなります.
出力:
これでコード管理がよくなります.今小学生が新しい技能を勉強して食べ物を食べると仮定して、私は今このように書きます.
このように書くと、エラーが発生します.
phpではこのようにマルチ継承を実現することはできないので、マルチ継承を実現するには次のように書くことができます.
出力:
まずskillクラスでstudentクラスを継承し、pupilクラスでskillクラスを継承します.これはpupilクラスがstudentクラスとskillクラスを継承することに相当します.
メソッド書き換え実装する2つのクラスに共通の特徴がある場合、この共通の特徴を1つの親クラスに抽象化することができます.例えば、小学生クラスと中学生クラスがあります.このような2つのクラスは、彼らは学生です.では、学生クラスを抽象化することができます.学生は試験ができます.では、試験という方法を学生というクラスに書きます.問題は、小学生は小学生の試験で、中学生は中学生の試験で、私はすべて試験を出力することができなくて、ここで方法を使って書き直しました.子クラスに親と同じメソッドを定義します.これにより、親クラスのメソッドが上書きされ、子クラスで定義されたメソッドのみが出力されます.例:
出力:
これは2日前に更新されたはずなので、遅い更新ですが、私は英語の4級を過ぎたことがありません.いいえ、ありません.いいえ、ありません.私の気持ちが落ち込んだので、何日かゲームをしました.いや、何日か反省して、痛いのはどうですか.
以下はすべて私個人の理解で、間違いがあるところはまだ教えてほしいです.なぜ継承が必要なのですか?継承とは、子クラスがextends親クラスを介して親クラスの属性とメソッドを継承することです.もし今2つのクラスを書く必要があるとしたら、小学生クラスと高校生クラス、小学生は話すことができて、歩くことができて、試験、高校生も話すことができて、試験、もしあなたが2回話すことを書いて、歩くことができて、試験、それでは太っているように見えて、管理するのも面倒で、もし1つのクラスを定義して学生クラスが話すことを含んで、歩くことができて、試験、そして小学生類と高校生類にこの学生類を継承させると、例えばこうなります.
speak();
$pupil->walk();
$pupil->test();
echo '
';
$senior=new senior();
$senior->speak();
$senior->walk();
$senior->test();
?>
出力:
これでコード管理がよくなります.今小学生が新しい技能を勉強して食べ物を食べると仮定して、私は今このように書きます.
speak();
$pupil->walk();
$pupil->test();
$pupil->eat();
?>
このように書くと、エラーが発生します.
Fatal error: Class 'studentskill' not found in D:\xampp\htdocs\1.php on line 18
phpではこのようにマルチ継承を実現することはできないので、マルチ継承を実現するには次のように書くことができます.
speak();
$pupil->walk();
$pupil->test();
$pupil->eat();
?>
出力:
まずskillクラスでstudentクラスを継承し、pupilクラスでskillクラスを継承します.これはpupilクラスがstudentクラスとskillクラスを継承することに相当します.
メソッド書き換え実装する2つのクラスに共通の特徴がある場合、この共通の特徴を1つの親クラスに抽象化することができます.例えば、小学生クラスと中学生クラスがあります.このような2つのクラスは、彼らは学生です.では、学生クラスを抽象化することができます.学生は試験ができます.では、試験という方法を学生というクラスに書きます.問題は、小学生は小学生の試験で、中学生は中学生の試験で、私はすべて試験を出力することができなくて、ここで方法を使って書き直しました.子クラスに親と同じメソッドを定義します.これにより、親クラスのメソッドが上書きされ、子クラスで定義されたメソッドのみが出力されます.例:
test();
echo '
';
$senior=new senior();
$senior->test();
?>
出力: