‫お帰りなさい｡
‫いくつかのクラスとサブクラス､ あるいはいくつかの派生クラスを作成する必要があったこの課題を､ ぜひ最後までやり遂げることができればと思います｡
‫そして､ そうだ､ まずはやってみよう｡
‫では､ Employeeという新しいクラスを作りましょう｡
‫そして､ この社員はいくつかの情報を持っているはずです｡
‫まず名前ですが､ これはpropで､ nameの文字列プロパティにします｡
‫次に､ もう1つ､ prop string､ first nameです｡
‫そして3つ目は､ セロリというプロパティです｡
‫これで､ これら3つのプロパティが揃いましたので､ 先に進み､ 作成することができます｡
‫コンストラクタで､ public employeeを指定すると､ 名前､ ファーストネーム､ 給料が入力されます｡
‫もちろん､ それらを設定することも必要です｡
‫このドット名は､ このような名前になるわけです｡
‫ファーストネームになりそうです｡
‫そして､ このドットサラリーはサラリーになるんです｡
‫さて､ これがコンストラクタです｡
‫そして､ その後に｡
‫私たち社員は､ 仕事とPOSというメソッドを持っているはずです｡
‫そこで､ それらのパブリックなvoidワークを作ってみましょう｡
‫そして､ これは私が働いているようにどこかに書けばいいのです｡
‫そして､ 1つはpauseという空白で､ I am having a breakみたいなことを書きに行くだけです｡
‫なるほど､ これで社員はほぼ揃いましたね｡
‫そして今度は､ その従業員を継承して､ Bossという新しいクラスを作りたいと思います｡
‫だから､ これは実際に両方になるんです｡
‫それを変えよう｡
‫このクラスを削除して､ 新しいクラスを作りましょう｡
‫名前を変えてもよかったのですが､ 新しく作った方が実は便利なんですよ､ そういう上司は｡
‫そして今､ その上司は自分の財産を持っているはずだ｡
‫ここに記載したとおりです｡
‫では､ 戻ってみましょう｡
‫社用車というプロパティとleadというメソッドを持つ､ 独自のクラスbossを作成｡
‫このプロパティは文字列で､ 社用車と呼ぶことにします｡
‫そして､ public void leadというメソッドがあります｡
‫そして､ こちらは､ 私がボスですとか､ そういうことを言うだけです｡
‫CWボス｡
‫だから､ ここには素晴らしい英文法がある｡
‫私はボスです｡
‫そして､ 次に､ 労働時間と通学時間のプロパティを持ち､ 学習メソッドを持つtraineesまたはtraineeという従業員の別の運転クラスを作成する必要があります｡
‫だから､ そうしよう｡
‫という新しいクラスを作りましょう｡
‫研修生です｡
‫ちなみにその研修生は､ 上司が社員から派生したわけではないので､ その社員を追加すればいいはずです｡
‫トレーニーも同じです｡
‫また､ 従業員に由来するものです｡
‫そして今､ ご覧のように､ がないように｡
‫エンプティがないため｡
‫ここにコンストラクタがあります｡
‫文句を言っているのです｡
‫そこで､ 空のand構造を作成し､ nameのデフォルトをDennisとし､ first
‫nameのデフォルトを実際にDennisとすることにします｡
‫苗字は私の場合､ ダジャレユタカのはずです｡
‫それから給料ですが､ これは簡単に言うと5万円で､ あまり正確ではありませんし､
‫通貨の話もしません｡
‫わかりました｡
‫今､ そう言うと､ エラーが消えるのがわかりますね｡
‫だから､ ちょっとだけ､ それを解消してみよう｡
‫そうでなければ､ ここで不幸になる｡
‫つまり､ 必須であるemployeeの正式なパラメータ名employee string string intに対応する引数が与えられていないと言うことですね｡
‫そのため､ ボスクラスにコンストラクタを実装するか､ どちらかになります｡
‫それでもやるべきだと思っています｡
‫上司を作ったら､ この社用車の情報を知らせたり､ 追加したりしたいので､ そうしましょう｡
‫そこで､ 社用車という文字列を受け取るパブリックボスを作ってみましょう｡
‫社用車､ 次に名前という文字列､ ファーストネームという文字列､ セロリルートという整数値｡
‫そして今､ 私たちはこのように言うのです｡ 「ドット・カンパニー・カーは､ ネ・カーあたりのコンプと同じだ」と｡
‫今､ 他のものはすべてなくなっています｡
‫もちろん､ このようにドットネームとネームが等しいと言うこともできますが､ ベースと呼ばれるものを使えば､ さらにシンプルにすることができます｡
‫そこで､ ベースネーム､ ファーストネーム､ サラリーを使っています｡
‫つまり､ 今回のようなアプローチをとっているのです｡
‫これは､ このコンストラクタを使用しているわけです｡
‫だから､ ここに初期設定を全部書く必要はないんだ｡
‫よし､ 何かする前に､ テストしてみよう｡
‫では､ 従業員を作ってみましょう｡
‫あるいは実際に､ ボスを作ってみよう｡
‫では､ 従業員で進めてみましょう｡
‫だから､ 従業員は私の共同経営者であるマイケルで､
‫彼は新入社員で､ このように進めていくことができます｡
‫ということで､ デニスさんになります｡
‫このコンストラクタを使うだけですが､ 私は本物のマイケルについて情報を提供したいので､
‫マイケル・ミラーとし､ 彼の給料を4万円にします｡
‫そして､ もちろん､ Michaelのメソッドを呼び出すことができるようになりました｡
‫マイケル
‫そして私たちは､ まあ､ 彼は働くべきだから､ どうぞ働いてくださいということでした｡
‫そしてマイケル､ パスを出してみてください｡
‫そして､ 最後にコンソールTodd Reedキーでコンソールを開いたままにします｡
‫では､ それを検証してみましょう｡
‫そして､ 私たちは
‫だから､ まず仕事をして､ それから休んで､ それが素晴らしいんです｡
‫いい奴だな､ マイケル｡
‫では､ さっそくボスを作ってみましょう｡
‫では､ 先にボスと言い､ 電話をかけてみます｡
‫チャック・ノリスが新しいボスとして呼ばれるようになる｡
‫まあ､ 社用車が必要ですからね｡
‫フェラーリのために何をするのか､ それから名前｡
‫そして､ これはノリスになります｡
‫そうすると､ ファーストネームはチャックになり､ 給料は9000円を超えることになる｡
‫つまり､ 非常に高い値を設定しただけで､ 実はその値を受け入れていないのです｡
‫それは､ 整数では耐えられないことだったんですね｡
‫つまり､ チャックが稼いでいるわけで､ これからは彼をリードしていくことができるのです｡
‫だから､ チャック・ノリスに我々のリーダーになってもらおう､ と｡
‫では､ 彼の言葉を聞いてみましょう｡
‫そして､ 私がボスだと言うのです｡
‫もちろん､ 彼が言っていることについて､ さらに情報を追加して行くこともできます｡
‫私の名前です｡
‫そして､ 彼の名前のようなものを使い､ さらに彼の給料など､ そういった情報を追加することもできます｡
‫だから､ それは演習の一部ではなかったのですが､ ここに書き加えておきます｡
‫そこで､ この人についてもう少し情報を得ましたので､ まずファーストネームから､ そしてラストネーム､
‫あるいは実際に名前について進めていこうと思います｡
‫そして､ ご覧のように､ 私のボスにそれらのプロパティを作成していないにもかかわらず､ それらを使用することができます｡
‫なぜなら､ 私はそれらを従業員から継承しているからです｡
‫そして今､ ボスでもう一度実行すると､ 私の名前はチャック・ノリスで､ それはすごいことなんだ｡
‫チャック・ノリスは我々のボスなんですね｡
‫さて､ 研修生も何かをする必要があるので､ 自分の財産を持つべきです｡
‫一つは勤務時間､ 就業時間､ そしてもう一つは勉強時間や通学時間です｡
‫だから､ 家で勉強しているという意味での勉強時間であるべきなんです｡
‫しかし､ 実は､ ドイツの研修制度についてご存じないのでは？
‫仕事を覚える3年間の研修制度があるのですが､ それはまあ､ 大学と似ているわけではないのですが､
‫10年学校に通ったら､ そこに行って､ これに行って､ 研修生として仕事を勉強して､
‫それを3年間やるというような感じですね｡
‫そしてその後､ 専門家ではなく､ かなり仕事ができるような教育を受けていますね｡
‫だから､ 労働時間の60％とか80％とか､ それから1日だけ学校がある｡
‫だから､ その課題に関するより詳細で重要な情報を学ぶために､ 学校に通うのです｡
‫そしてそれは､ ドイツにとってかなり有効なことなのです｡
‫だから､ みんながいい仕事に就くために大学に行く必要はないし､ いい仕事に就くために大学に行く必要もない｡
‫そこで､ これはかなりの代物です｡
‫わかりました｡
‫勤務時間､ 通学時間､ 名前､
‫文字列､ 名前､ 色､ そしてint型給与が必要です｡
‫そして今､ ここではベースも使っています｡
‫また､ それをしなかったとしても､ まったく問題ありません｡
‫ご心配なく｡
‫それができることを知ってもらうためです｡
‫だから､ 名前､ 名字､ 給料｡
‫ベースクラスのものをそのまま使って､ あとは労働時間を割り当てるだけです｡
‫そして､ 実際にここで､ この開始勤務時間を私たちの勤務時間に､ そして､ このドットスクール時間を私たちのスクール時間にしたいのです｡
‫名前､ ファーストネーム､ 給料はどうせベースクラスのものです｡
‫そして今､ 私たちはメソッド学習が必要なのです｡
‫そして､ それは何だったのか｡
‫学んで働いて､ 今度は働く｡
‫トレーニーとは少し違った働き方をするはずです｡
‫上司か従業員か｡
‫だから､ 私たちは学ぶのです｡
‫というようなことを､ ここでは書くだけです｡
‫CW こうやって何時間も学習しているので､ 学習時間や学校の時間になるんです｡
‫そんな感じ｡
‫そして､ 最後のメソッドがpublic void workになります｡
‫そして､ このメソッドは実際に従業員メソッドをオーバーライドする必要があります｡
‫私は0時間働いています｡
‫そして､ ゼロによって｡
‫ゼロというわけではありません｡
‫労働時間のことです｡
‫ここで､ hides inherited member employee work
‫と書かれている場合､ hide が意図されている場合は新しいキーワードが使われます｡
‫しかし､ ここでは新しい従業員を作成し､ 今回は研修生とすることにしましょう｡
‫だから､ 彼女をミッシェルと呼んで､ 新しい研修生にすることにした｡
‫ミシェル､ 実は彼女には労働時間が必要なんだ｡
‫例えば､ 彼女が週に32時間働いているとしよう｡
‫そして､ 週に8時間､ 学校に通う｡
‫彼女の名前はミッシェル・ガーデナー｡
‫だから
‫ミッシェルで給料は年1万とか｡
‫わかりました｡
‫では次に､ ミシェルさんの勉強について聞いてみましょう｡
‫それで､ どうなんですか？
‫そして､ ミッシェル､ 仕事です｡
‫では､ 実行すると何が起こるかわかります｡
‫そして､ 8時間勉強して､ 32時間働くと書いてあります｡
‫まあ､ それをオーバーライドして､ まったく同じ方法を使っただけなんですけどね｡
‫だから仕事｡
‫同じ名前です｡
‫こちらはバーチャルではないので､ オーバーロードしました｡
‫と､ ここで文句を言っている｡
‫あるいは､ 本当は文句を言っているわけではないのですが､ 何か完璧に正しくないことがあると言っているのです｡
‫というのも､ 次の章でポリモーフィズムやメソッドのオーバーライドについてさらに詳しく説明するからです｡
‫これまでは1つのアプローチしか使っていませんでしたが､ 複数のアプローチがあります｡
‫例えば､ public new void workを作ると､ そのメソッドが私のために新しいメソッドを作ってくれます｡
‫そしてまあ､ 私たちの場合も同じようなことをやっています｡
‫しかし､ ポリモーフィズムとなると､ これは私たちのプログラムに大きな影響を与えることになる｡
‫だから､ なんとかそれを作ってほしい｡
‫また､ 別のエクササイズとして､ サブクラスを作成できるかどうか､ クラスやベースクラス､
‫派生クラスがどのように連携し､ どのように構築するかなど､ 再度テストしてもらいました｡
‫素晴らしい｡
‫では､ 次の章でポリモーフィズムについて説明します｡