表示調整
閉じる
挿絵表示切替ボタン
▼配色
▼行間
▼文字サイズ
▼メニューバー
×閉じる

ブックマークに追加しました

設定
0/400
設定を保存しました
エラーが発生しました
※文字以内
ブックマークを解除しました。

エラーが発生しました。

エラーの原因がわからない場合はヘルプセンターをご確認ください。

ブックマーク機能を使うにはログインしてください。
ひっそりと生きたい最強女子の転生譚  作者: 双月 仁介
第2.5章 閑話集
85/132

085 佐藤タケル③

 ツバサちゃんとマイさんが二人で旅行に行く際、僕はなぜかツバサちゃんの部屋で留守番役になってしまった。

 なぜならこの2地点間座標接続装置(ゲート)、向こう側から扉を閉めることも開けることもできないから…。つまり、A地点からB地点へ行く場合、誰かがA地点に残ってドアの開閉をしなければならないのだ。

 接続しっぱなしだとセキュリティ的に問題だし、電気代も馬鹿にならないからね。タイマーでドアが閉まる機能やインターネット経由で操作できる機能(いわゆるスマート家電っぽい機能)は必要だと思う。

 ツバサちゃんにはこれらの要望を報告書(レポート)にぜひ記述しておいて欲しいよ。


「タケル君、ただいまぁ~。日光(にっこう)はすごく良かったよ。日光を見ずして結構と言うなかれってやつだね」

 今日は栃木の日光に行ってきたそうだ。東照宮だね。

「いつもお留守番させてごめんなさい。これお土産だよ」

 僕の役目はツバサちゃんとマイさんが向こう側に行ったあと、ドアを閉めること。あと、携帯電話に連絡が入ったらドアを開けること。それだけだ。はっきり言って退屈な任務だけど、ツバサちゃんの部屋には光回線が通っていて無線ルーターもあるから、スマホでネットゲームしたり掲示板で暇を潰しているよ。

 てか、女の子の部屋に男一人で留守番って、ツバサちゃんは気にならないのかな?


「ああ、いつもお土産をありがとう。僕のことは気にせず楽しんできてよ。まぁ女の子二人っきりってのがちょっと心配ではあるんだけど…」

「今回もナンパされたよ。しつこい奴は返り討ちにしてやるんだけど、今回は大丈夫だったよ」

 ツバサちゃんの言葉なんだけど、おそらくナンパ対象はマイさん一人だろうな。並んでいる姿は仲の良い姉妹にしか見えないよ。大学生の姉と中学生の妹って感じだ。

 ちなみにツバサちゃんの空手の(わざ)が炸裂しても、マイさんが治癒魔法(ヒール)で治してしまうから問題にはならないらしい。…って、マッチポンプかよ!

 以前、どこかの観光地でヤンキー集団(十人以上)に囲まれたときも、なぜか動きの悪くなったヤンキーたちをツバサちゃんが一方的にボコっていったらしい。マイさんは離れたところから見ていたらしいんだけど、ヤンキーたちは水の中を泳いでいるかのような動きの遅さで異様だったとのこと。ツバサちゃんには無限倉庫(インベントリ)以外にも、僕らには内緒の特殊能力があるのかもしれないね。


「それじゃ今夜はいつも通り三人で食事に行くってことで良いのよね?もちろんタケル君の分は私たちが(おご)るから」

 僕の留守番役としての報酬は、毎回夕食を(おご)ってもらうことなのだ。別にそこまで気を遣わなくても良いんだけど、二人の罪悪感を解消するって面もあるので、仕方なくご馳走になっている。

「あ、そうだ。ついでと言っちゃ(なん)だけど、タケル君にプログラムのことで質問があるんだよね。良いかな?」

 ツバサちゃんは情報処理系の専門学校に通っていて、そこでプログラミングを学んでいるらしい。なにか分からないことでもあるのかな?

「ポリモーフィズムって何?異なるオブジェクトに同じメッセージを投げると異なるふるまいをするって、全く意味が分かんないんだけど…」

 ああ、オブジェクト指向でも割と難解な考え方だよね。ツバサちゃんが疑問に思うのも無理はない。


「そうだな、まずは『犬』というクラスと『猫』というクラスを想像してみて欲しい。どちらにも『鳴く』という機能(メソッド)があって、それぞれ異なる鳴き方になるよね」

「えっと、『犬』と『猫』に同じ『鳴く』というメッセージを送っても『ワン』とか『ニャー』とか異なる鳴き方をするってことがポリモーフィズムってことなの?」

「いや、違う。『犬』クラスと『猫』クラスを汎化(はんか)して『動物』クラスという(スーパー)クラスを作るんだ。そして『犬』や『猫』は『動物』クラスを継承インヘリタンスして作る」

「ふむふむ」

「大事なのは『動物』クラスにも『鳴く』という機能(メソッド)を設けることだね」

「え?『動物』の鳴き声なんて決められないよ」

「うん、だから『動物』クラスの『鳴く』は実装しない。でも定義は行うんだ」

「そんなことができるの?」

「まだ習ってないかもしれないけど、抽象メソッドという考え方だね。だから『動物』クラスは抽象クラスということになるよ」

「ほへぇ~、よく分かんないけど…」

「そういうものだと思っておけば良い。で、ここからが重要なんだけど、(スーパー)クラスの変数に(サブ)クラスの実体(オブジェクト)を格納できるんだ。正確に言えば、変数からオブジェクトを参照しているんだけど、まぁ格納していると思ってもらっても構わないよ」

「データ型が違うのに大丈夫なの?」

「継承関係にあるから大丈夫なんだよ。それで『動物』クラス型変数に『犬』オブジェクトが格納されていて、『動物』クラスの『鳴く』機能(メソッド)を実行したらどうなると思う?」

「『動物』クラスの『鳴く』は抽象メソッドだっけ?実装してないんじゃなかったっけ?あ、まさか『犬』クラスの『鳴く』機能(メソッド)が実行されるってこと?」

「その通り。本来ならそのオブジェクトが『犬』なのか『猫』なのかを判別して、『犬』オブジェクトだったら『犬』クラス型変数に代入してから『鳴く』を実行すべきだよね。でもそんな面倒なことは不要になるんだよ。それこそがポリモーフィズムってわけ」

「そっかぁ、異なるオブジェクトに同じメッセージを投げると異なるふるまいになる…つまり『動物』クラス型変数に入っているのが『犬』だろうが『猫』だろうが、『鳴く』を実行すればそれぞれのオブジェクトごとに適切な動き方をしてくれるってことだね。あっ、だったら『動物』クラス型の配列を作れば、すごく便利じゃない?」

「そうなんだよ。配列ってのは同じデータ型の並びなんだけど、参照している先が異なるデータ型になるのは良いんだ。そういう配列のことを『異種リスト』と言ったりもするよ」

「配列をループで一括処理する際なんか、いちいちオブジェクトの型を調べなくても良いのは便利だね」

 やはりこの子は地頭(じあたま)が良いよね。こんな簡単な説明で理解してくれるなんて…。いや、それよりも専門学校の講師はどういう教え方をしてるのかな?ちょっと心配になるよ。


「もう!あなたたち、何語をしゃべっているの?さっぱり理解できないわ」

 マイさんがお(かんむり)だ。そりゃそうか。そもそもクラスとオブジェクトの関係を説明してないからね。知らない人にはチンプンカンプンだろう。

「マイさん、ごめんよ~。じゃあ次は薬学の話でもする?」

「まだ一年生だから教養課程だよ。専門課程の講義があるのは来年からね」

「ああ、うちの大学もそうだよ。僕の入った工学部魔法工学科は魔道具の研究に特化してるんだけど、今年の内は数学や英語ばかりだな。第二外国語はドイツ語にしたけど、マイさんは?」

「良かったぁ。私もドイツ語だよ。これで一緒に勉強できるね」

「今度は僕が仲間(はず)れだよ。でも僕もドイツ語なら少しは分かるよ。ぜんせ…ごほっごほっ、ちょっと独学したからね」

 ツバサちゃんが何かを言いかけて咳払(せきばら)いで誤魔化した。ん?『ぜんせ』って何だ?まさか『前世』じゃないとは思うけど…。


 タケル視点がどうにも書きにくかったというか、筆が進まなかったため、更新が遅くなってしまいました。

 ちなみにツバサちゃんは前世で大学生だった際、第二外国語はドイツ語を選択していました。


評価をするにはログインしてください。
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
+注意+

特に記載なき場合、掲載されている作品はすべてフィクションであり実在の人物・団体等とは一切関係ありません。
特に記載なき場合、掲載されている作品の著作権は作者にあります(一部作品除く)。
作者以外の方による作品の引用を超える無断転載は禁止しており、行った場合、著作権法の違反となります。

この作品はリンクフリーです。ご自由にリンク(紹介)してください。
この作品はスマートフォン対応です。スマートフォンかパソコンかを自動で判別し、適切なページを表示します。

↑ページトップへ