コース: プログラミングの基礎:オブジェクト指向
今すぐコースを受講しましょう
今すぐ登録して、24,100件以上登録されている、業界エキスパート指導のコースを受講しましょう。
継承関係を特定する
このレッスンではクラスの中から 継承関係を特定する方法について説明します。 以前オブジェクト指向の 4つの主要概念の1つである 継承について説明しました。 ここでは継承について もう少し詳しく説明しましょう。 継承は inheritance とも言います。 継承状況を特定する 最も簡単な方法は is a 関係があるかどうかです。 つまり B is a A という関係が 成り立つかどうかです。 これは日本語でいうと 「B は A の一種である」 ということになります。 最初はクラスや オブジェクトについては忘れて 現実世界のものごとを 考えてみましょう。 「車は乗り物の一種である。」 「バスは乗り物の一種である。」 これはそうですね。 では「車はバスの一種である。」 これは違いますね。 では「従業員は人の一種である。」 「顧客は人の一種である。」 これは言いますね。 けれども「顧客はショッピングカートの 一種である。」 これは意味をなしませんね。 同様に「当座預金口座は 銀行口座の一種である。」 これは大丈夫です。 「普通預金口座は銀行口座の一種です。」 これも大丈夫ですね。 私たちは自然にこれらの考えを理解し 話すことができます。 私たちは何が理に叶っていて 何が叶っていないかを知っています。 では次はどうでしょう。 「トヨタプリウスは車の一種であり、 乗り物の一種です。」 これも大丈夫ですね。 「ポメラニアンは犬の一種であり、 哺乳動物の一種であり、動物の一種です。」 これも大丈夫です。 継承は自然に行う 抽象化というこの考え方を プログラミングに取り入れています。 ここで何人かの人々は最初の問題に ぶつかります。 彼らは様々なクラスを描き始め、 名詞を選び出し、 銀行と銀行口座の間に なんらかの関係を見出します。 けれどもここに継承関係があるでしょうか? 「銀行口座は銀行の一種である。」とも 「銀行は銀行口座の一種である。」とも 言えませんね。 銀行と口座は関係があるかもしれませんが それは継承ではありません。 しかし「当座預金口座は銀行口座の 一種です。」ということはできます。 また「普通預金口座は銀行口座の一種です。」 とも言うことができます。 ですからこれらは継承関係にあります。 UML のクラス図では 中抜き三角の矢印で…