第5回 extendsで恋も授業も延長だ!
荒井亜子
2008/3/6
編集長にダメの烙印(らくいん)を押された新人編集者が、業務の合間に身を削って、必死でプログラミングを学習し、学んだことを皆さんにお伝えする連載。「こんな奴でも頑張っているのか」と、これからJavaを始める人や、一度Javaで挫折をした人にはぜひ読んで糧にしていただきたい。記事の最後には、Javaの講師よりアドバイスを掲載 |
|
前回の記事「プログラムが恋人なんて悲しすぎるな」では、恋の痛手を引きずりながらも何とかコンストラクタまで学習した新人編集者。今回の範囲である継承は、いままでの知識を基に進む。そういえば、彼女はちゃんと予習復習をしているのだろうか。非常に怪しい。
■K崎さんの正体
K崎 おはよう! 今日は天気がいいね。建物の中にいるなんてもったいないよ!
新人編集者(以下、新人) (なんてさわやかなことをいうんだろう)お、おはようございます。そうですね、こんな日はアウトドアプログラミングなんかもってこいですよね
K崎 あぁ、バッテリーが切れたら即終了のアウトドアプログラミングね
新人 (この人、話分かるかも)
K崎さんから話し掛けられるなど思ってもみなかった新人編集者。K崎さんの方からの思わぬアプローチにドギマギし、おかしなことを口走ってしまう。恋には奥手だ。だが、K崎さんと通じるものが感じられ、思い切って昨日から気になっていたことを聞いてみることに。
新人 昨日の昼休み、どこかに出掛けてませんでした?
K崎 あー、昼休み会社戻って仕事してたんだ。空き時間も有効に使うのが僕の主義だから
新人 (なんだ、仕事だったのか。……ていうか)昼休みも仕事?! すごい、昼休みは休まないのですか?
K崎 これは僕の哲学だけど、休みを休みだと思ったら凡人だろ?(くすっ)
新人 休むために働いているような私は凡人で結構です……
K崎 効率重視の僕にとって、今日の範囲、継承は一番好きなところだよね
新人 予習してきているんですか?
K崎 まぁね。Javaは初めてだけどC言語をやったことはあるから、入りやすいっていうのかな
新人 私は予習どころか復習だってままならないのに。ところで、ケイショーって? 先生、ケイショーって何〜?? 敬称? 軽症? 警鐘?■ケイショウは継承だ! ちょっとくらい予習してこい
新人編集者の進歩のなさっぷりに、教室のみんなは、上の小見出しのように思っていたのではないか、後から考えると不安だ。
先生 継承とは、すでにあるクラスを拡張することで、効率よく新しいクラスを作成することです。Java(オブジェクト指向)が持つ強みの1つといえます
新人 効率よく? さっきK崎さんも同じことをいってたな
先生 新しいクラスは、既存のクラスのメンバ(メソッド、変数)を受け継ぐようになっています。ですから、既存のクラスに新しく必要な機能やデータの差分だけ付け加えれば済むんです。効率がいいですよね?
新人 ははーん
先生 このとき、基になる既存のクラスをスーパークラスといいます
新人 へぇ。デパートクラスとかもあるんですか?
先生 ないです(ピシャリ)
新人 (先生、今日はスパルタだな)
先生 サブクラスというものがあります。サブクラスとは、スーパークラスから派生する新しいクラスのことですね。先ほど述べたように、既存のクラスのメンバを自然に受け継いでいます
新人 じゃあ、サブクラスでは、基となるクラスであるスーパークラスのメンバを記述する必要がないんだ?
先生 それどころか、サブクラスでは新たにメンバを付け足すことができます。図1を見てみてください
図1 Toriクラスの継承 |
新人 えっと、ToriクラスからHiyokoクラスが派生していて、Hiyokoクラスには、変数(color)とメソッド(displayColor)が1個ずつ増えてる
先生 そうです。また、スーパークラスを派生させてサブクラスを作成するときは、extendsというキーワードを使います(図1)。クラスの拡張という意味ですね
オーバーライドに挑戦! |
今回のインデックス |
継承の概念をマスターしよう (1ページ) |
オーバーライドに挑戦! (2ページ) |
@IT自分戦略研究所は2014年2月、@ITのフォーラムになりました。
現在ご覧いただいている記事は、既掲載記事をアーカイブ化したものです。新着記事は、 新しくなったトップページよりご覧ください。
これからも、@IT自分戦略研究所をよろしくお願いいたします。