インヘリタンス
親要素の特徴を受け継ぐよ
オブジェクト指向の話とかで出てくるよ
簡単に書くよ
インヘリタンス(英:inheritance)とは
「継承」のこと。
用語の中身としては
元ネタから要素を受け継いで、元ネタの特徴を備えた新しいのを作ること
です。
詳しく書くよ
最初に留意事項です。
「継承」と言われて「あぁ、アレのことね」と分かる方は最後まで読む必要ありません。
継承を指す別の呼び名が「インヘリタンス」です。
「継承って何?一子相伝のやつ?」な人は、このまま読み進めてください。
用語の中身について説明します。

それでは、いってみましょう。
まずは予備知識として「オブジェクト指向」と「クラス」について説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
オブジェクト指向は「『モノ』に注目した考え方」です。
「どんなやつで、どう動く」に注目した考え方です。
詳細は、用語「オブジェクト指向」の説明を ご覧ください。
オブジェクト指向の理念に沿って作られたプログラミング言語を「オブジェクト指向プログラミング言語」と言います。
有名どころでは、Javaなんかがオブジェクト指向プログラミング言語です。
オブジェクト指向プログラミング言語では
・クラス
・インスタンス
・オブジェクト
の3つの用語が よく出てきます。
この3つは とても大事です。
ざっくりとで良いので関係性を覚えておいてください。
専門家の人からは怒られそうですが、ものすごい大雑把に説明すると
クラス:設計図
インスタンス:実際に作った物
オブジェクト:モノ(クラスとかインスタンスとかを、ふんわりと表現したもの)
です。
クラスは「設計図」です。
「それって、どんなもの?」を示しています。
ピヨ太君の頭の中にある「ピヨピヨ時計は こんな感じだな」がクラスです。
インスタンスは「実際に作ったもの」です。
クラス(設計図)に書かれた「それって、どんなもの?」を形にしたものを指します。
実際に作ったピヨピヨ時計がインスタンスです。
オブジェクトは……モノですよ、モノ。
結構ざっくりとした使われ方をする用語です。
「クラスとかインスタンスを ふんわりと表現したもの」くらいに解釈してください。
よく分からない人は忘れてしまって かまいません。
以上を踏まえて
元ネタから要素を受け継いで、元ネタの特徴を備えた新しいのを作る
のが「インヘリタンス」です。
「インヘリタンス」という用語はオブジェクト指向の話とかで出てきます。
上でも書きましたが、インヘリタンスは「継承」と表現されることも あります。
……というか「継承」の方が一般的な呼び名だと思います。
私も「継承」の方が馴染みがあるので、以降は「継承」と表現させてください。
例えば、そうですね。
ここにピヨ太ママがいたとしましょう。
ピヨ太ママの要素を受け継いだピヨ太君を新しく作りました。
ピヨ太君にはピヨ太ママの特徴が色濃く受け継がれています。
これが継承です。
継承元(ピヨ太ママ)から要素を受け継いで、継承元の特徴を備えた新しいの(ピヨ太君)を作る行為です。
なお、このときのピヨ太ママとピヨ太君は「親子関係にある」と言います。
ピヨ太ママはピヨ太君の「親」です。
ピヨ太君はピヨ太ママの「子」になります。
以上で継承のざっくりとした説明は終わりですが、せっかくなので、もう少しプログラミングっぽい例も載せておきましょう。
例えば、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」があるのです。
一言でまとめるよ
まぁ「インヘリタンス」って単語が出てきたら「継承
(元ネタの要素を受け継ぐこと)のことなんだな~」と お考えください。
おまけ
■訳してみるよ
「inheritance(インヘリタンス)」の意味は
・継承
・相続
・遺産
とかです。






