んだです。メモです。
OOPとかデザインパターンを勉強していると、目にする「is-a」
is-a関係について、頭の整理のためまとめます。
「is-a」ってなんの話をしているのか?
ClassとClassの関係性の話。
クラスとクラスがどんな関係にあるのか?の話
「is-a」とは?
「A is a B」「AはBの一種だよ」な関係。
「is-a」の具体例をコードで
たとえば、
・「学生(Student)」と「大学院生(GraduateStudent)」
・「学生(Student)」と「学部生(RegularStudent)」
コードで表現するとこうなる
<?php abstract class Student { } class GraduateStudent extends Student { } class RegularStudent extends Student { }
日本語で表現するとこうなる (言っていることは皆同じ。)
・RegularStudentクラスは、Student クラスから派生している。 ・GraduateStudentクラスは、Student クラスから導入されている ・GraduateStudentクラスは、Student クラスを特殊化したもの ・GraduateStudentクラスは、Student クラスを特殊化したもの ・RegularStudentクラスは、Student クラスのサブクラス。