経緯
1年ほど前に上司にペアプロをしてもらった際に継承について知識があやふやだったため、有名なRPGの例えで説明してくれました。
この例え自体知ってはいたけど、上司の説明が一番個人的にわかりやすかったです。自分も部下に全く同じことを喋りたかったのでメモ帳に封印していたのですが、使う機会がないので投稿。
継承
1.一つのクラスは一つの親クラスを持っていて2つは持てない
ex.魔法使いクラスがあって、戦士クラスがあるとする
2.勇者タロウ(以降太郎)は魔法使いクラスを継承して太郎クラスになっているとする
= だから太郎は魔法が使える
けど、太郎は剣で戦うこともできるから剣の継承もしたい...
でも太郎は魔法使いを継承してるからできない...
「だから、魔法使いと戦士をtraitにすればどちらも継承して魔法戦士太郎」
つまり、多重継承がPHPだとできないからそれを実現しようとしている
共通の親がいないとした時にそれぞれの親を一箇所に書きたいときにはtrait使ってuseしちゃえば良い