んだ日記

ndaDayoの技術日記です

【メモ】is-a関係って??

んだです。メモです。

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 クラスのサブクラス。