永続クラスの継承〜その2
※その1=>*1
つまり、「明示的ポリモーフィズムを親に定義するのか、子に定義するのか」ということだけど。
試しに孫まで作ってみた。
public class EntityA{ (略) } public class EntityB extends EntityA{ } public class EntityC extends EntityB{ }
この場合は「親子孫のどれか二つに定義する必要がある」ことがわかる。
親だけでも、子だけでもダメだが、親+子でも親+孫でも組み合わせはなんでもよいわけだ。
基本的にはクラスは自分の子孫については認知しないので、子以下のクラスに書くべきなのだろうが、親の親まで把握していないと痛い目にあうわけだ*2。
まぁ・・・あまり使わないのだろうけどね。