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

親クラス

pointこの用語のポイント

pointクラスだよ

point継承元だよ

スポンサーリンク

簡単に書くよ

親クラス(読:オヤクラス 英:parent class)とは

秘伝を伝授した方のクラス(オブジェクト指向の話で出てくる概念のひとつで「設計図」っぽいやつ)のこと。
もう少し具体的に書くと

クラスの継承(元ネタの要素を受け継ぐこと)の話で出てくるクラスのひとつ
であり

元からあった方(継承元)のクラスのこと
です。


image piyo

詳しく書くよ

順番に見ていきましょう。
まずは予備知識として

オブジェクト指向
クラス
継承



について簡単に説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。

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

親クラス

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

親クラス2

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

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

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


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

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

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


です。

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

親クラス3

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

親クラス4

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

親クラス5

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

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

親クラス6

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

親クラス7

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

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

親クラス8

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

親クラス9

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

親クラス10

以上を踏まえて、本題に入ります。

継承の考え方はクラスにも当てはめられます。
ピヨ太ママクラスを継承してピヨ太ママクラスの特徴を備えたピヨ太君クラスを新しく作れるのです。

親クラス11

このときの最初からいた方、ピヨ太ママクラスが「親クラス」です。
親クラスは

継承元のクラス

です。

親クラス12

あと、ついでなので書いておくと、新しく作られた方のピヨ太君クラスは「子クラス」と言います。
子クラスは

継承先のクラス

です。

親クラス13

気が向いたら、合わせて覚えてあげてください。

親クラス:継承元のクラス
子クラス:継承先のクラス


です。

せっかくなので、もう少しプログラミングちっくな例も載せておきましょう。

例えば、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」クラスが子クラスになります。

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


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

以上で用語の意味自体の説明は終わりですが、呼び方について補足しておきます。

親クラスは「スーパークラス」や「基底クラス」と表現されることも あります。

親クラス14

同様に、子クラスは「サブクラス」や「派生クラス」と表現されることも あります。

親クラス15

それぞれの呼び名の対応は

・「親クラス」と「子クラス」
・「スーパークラス」と「サブクラス」
・「基底クラス」と「派生クラス」


です。
気が向いたら、併せて覚えてあげてください。


image piyo2

一言でまとめるよ

まぁ「親クラス」って単語が出てきたら「継承元のクラス(オブジェクト指向の話で出てくる概念のひとつで「設計図」っぽいやつ)なんだな~」と お考えください。

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

おまけ

■訳してみるよ

「親」は日本語ですね。
「class(クラス)」の意味は「種類」とか「階級」とか「授業」とか「学級」とかです。
何となく くっつけると

親となる種類

となります。


■検索してみる?




書籍画像
わわわ説明術コラム
宣伝だよ
実務で役立つ バックアップの教科書 基本の考え方からツール活用・差分管理・世代管理・データ保全・リストア・リカバリー・可用性の確保まで
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本
わかばちゃんとつくって、壊して、直して学ぶ NewSQL入門