「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

インヘリタンス

pointこの用語のポイント

point親要素の特徴を受け継ぐよ

pointオブジェクト指向の話とかで出てくるよ

スポンサーリンク

簡単に書くよ

インヘリタンス(英:inheritance)とは

「継承」のこと。
用語の中身としては

元ネタから要素を受け継いで、元ネタの特徴を備えた新しいのを作ること
です。


image piyo

詳しく書くよ

最初に留意事項です。
継承」と言われて「あぁ、アレのことね」と分かる方は最後まで読む必要ありません。
継承を指す別の呼び名が「インヘリタンス」です。

インヘリタンス

「継承って何?一子相伝のやつ?」な人は、このまま読み進めてください。
用語の中身について説明します。

ちょっと休憩

それでは、いってみましょう。
まずは予備知識として「オブジェクト指向」と「クラス」について説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。

オブジェクト指向は「『モノ』に注目した考え方」です。
「どんなやつで、どう動く」に注目した考え方です。

インヘリタンス2

詳細は、用語「オブジェクト指向」の説明を ご覧ください。

インヘリタンス3

オブジェクト指向の理念に沿って作られたプログラミング言語を「オブジェクト指向プログラミング言語」と言います。
有名どころでは、Javaなんかがオブジェクト指向プログラミング言語です。

オブジェクト指向プログラミング言語では

クラス
インスタンス
オブジェクト


の3つの用語が よく出てきます。
この3つは とても大事です。
ざっくりとで良いので関係性を覚えておいてください。

専門家の人からは怒られそうですが、ものすごい大雑把に説明すると

クラス:設計図
インスタンス:実際に作った物
オブジェクト:モノ(クラスとかインスタンスとかを、ふんわりと表現したもの)


です。

クラスは「設計図」です。
「それって、どんなもの?」を示しています。
ピヨ太君の頭の中にある「ピヨピヨ時計は こんな感じだな」がクラスです。

インヘリタンス4

インスタンスは「実際に作ったもの」です。
クラス(設計図)に書かれた「それって、どんなもの?」を形にしたものを指します。
実際に作ったピヨピヨ時計がインスタンスです。

インヘリタンス5

オブジェクトは……モノですよ、モノ。
結構ざっくりとした使われ方をする用語です。
「クラスとかインスタンスを ふんわりと表現したもの」くらいに解釈してください。
よく分からない人は忘れてしまって かまいません。

インヘリタンス6

以上を踏まえて

元ネタから要素を受け継いで、元ネタの特徴を備えた新しいのを作る

のが「インヘリタンス」です。
「インヘリタンス」という用語はオブジェクト指向の話とかで出てきます。

上でも書きましたが、インヘリタンスは「継承」と表現されることも あります。
……というか「継承」の方が一般的な呼び名だと思います。
私も「継承」の方が馴染みがあるので、以降は「継承」と表現させてください。

例えば、そうですね。
ここにピヨ太ママがいたとしましょう。

インヘリタンス7

ピヨ太ママの要素を受け継いだピヨ太君を新しく作りました。
ピヨ太君にはピヨ太ママの特徴が色濃く受け継がれています。

インヘリタンス8

これが継承です。
継承元(ピヨ太ママ)から要素を受け継いで、継承元の特徴を備えた新しいの(ピヨ太君)を作る行為です。

なお、このときのピヨ太ママとピヨ太君は「親子関係にある」と言います。

インヘリタンス9

ピヨ太ママはピヨ太君の「」です。

インヘリタンス10

ピヨ太君はピヨ太ママの「」になります。

インヘリタンス11

以上で継承のざっくりとした説明は終わりですが、せっかくなので、もう少しプログラミングっぽい例も載せておきましょう。

例えば、Javaで書いた以下のソースコード(人間語で書いたプログラムの元ネタ)があったとします。

//ピヨ太ママクラス
class PiyotaMama{
    public String seikaku="キレたら怖い";
}

//ピヨ太君クラス
class Piyota extends PiyotaMama{
    public String syumi="昼寝";
}

//主処理
public class test{
    public static void main(String[] args){
        //ピヨ太君クラスのインスタンス「piyota」を生成
        Piyota piyota = new Piyota();

        //表示
        System.out.println("ピヨ太君の性格:" + piyota.seikaku);
        System.out.println("ピヨ太君の趣味:" + piyota.syumi);
    }
}


このソースコード内の

//ピヨ太ママクラス
class PiyotaMama{
    public String seikaku="キレたら怖い";
}

//ピヨ太君クラス
class Piyota extends PiyotaMama{
    public String syumi="昼寝";
}


が継承しているところです。

class Piyota extends PiyotaMama{



「PiyotaMama」を継承(extends)した「Piyota」

を意味しています。

このような状況を指して

「PiyotaMama」を継承した「Piyota」を作った



「Piyota」は「PiyotaMama」を継承している

などと表現します。

主処理部分に書いてある

        //表示
        System.out.println("ピヨ太君の性格:" + piyota.seikaku);
        System.out.println("ピヨ太君の趣味:" + piyota.syumi);


は実際にピヨ太君クラス(を実体化したもの)を使っているところです。
ピヨ太君クラスには「seikaku」がありません。
ですが、継承元のピヨ太ママクラスに「seikaku」があります。
ピヨ太ママクラスの要素を受け継いでいるピヨ太君クラスには見えないだけで「seikaku」があるのです。


image piyo2

一言でまとめるよ

まぁ「インヘリタンス」って単語が出てきたら「継承(元ネタの要素を受け継ぐこと)のことなんだな~」と お考えください。

一番上に戻るよ
スポンサーリンク
書籍画像013
書籍画像055

おまけ

■訳してみるよ

「inheritance(インヘリタンス)」の意味は

・継承
・相続
・遺産


とかです。




書籍画像
わわわ説明術コラム
宣伝だよ
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本【Audible】
インフルエンサー六法 活動開始から情報発信、収益化までに潜むトラブル対策50
マンガでわかるITパスポート