Pythonでできるようになった多重継承について説明しましょう｡
さて､ ユーザーであるウィザードとアーチャーのクラスがあることを思い出してください｡
今､ そのゲームを作ろうとしているところです｡
このコードを少し整理してみましょう｡
init関数はもう必要ないでしょう｡
ここにユーザーがいればいいんです｡
ユーザーから継承したウィザードと､ ユーザーから継承したアーチャーがあります｡
しかし､ 新しいキャラクターを作りたい場合､ このキャラクターをクラスと呼ぶとしたら､ どうなるでしょうか｡
ハイブリッドボーグというか､ 私たちは名前だとしましょう｡
知っています｡
しかし､ ここからが本題です｡
ハイブリッドボーグは､ 魔法使いが持っている力である「攻撃」を持っているので､ 特殊なキャラクターと言えるでしょう｡
チェコの矢というアーチャーが持つ力を備えている｡
そして､ 一応､ ここでもアドランしておきましょう｡
そして､ 4本のランは本当に速く走ったということになります｡
わかりました｡
だから､ このハイブリッドボーグには､ これらすべてのメソッドを搭載してもらいたい｡
できるかな？
まあ､ できるんですけどね｡
ウィザード､ そしてアーチャーと言えばいいのです｡
として､ いくらでもパラメータを与えることができる｡
多重継承として､ ウィザードとアーチャーから継承しています｡
ここで､ 何もせずにパスを打つとします｡
インスタンス化する場合､ 例えばハイブリッドボーグとします｡
ひとつはハイブリッドになる｡
ボーグクラスをインスタンス化する｡
これらすべてが使えるようになりました｡
確認してみましょう｡
プリントHP1ドットランとします｡
できるかな？
そしてまた､ ちょっとしたスペルミスが｡
ハイブリッドボードではなく､ ハイブリッドボーグにしよう｡
この映像に飽きずに見ていただけたらと思います｡
よし､ エラーが出たぞ｡
必要な位置引数が2つ不足しています｡
名前と力｡
わかったよ､ だってさ｡
まあ､ こういうのは通さないといけないんですけどね｡
そうですね｡
これらのパラメータを受け付ける｡
なるほど｡
そこで､ ある名前をこうしたいとします｡
ボルギと､ これを走らせたら50になる力｡
わかりました｡
Ranは本当に速そうですね｡
ランの作品です｡
アーチャーから受け継ぐことができたのです｡
チェコの矢はどうですか？
実行」をクリックすると
ああ｡
ハイブリッドボーグは分かる｡
オブジェクトに矢印の属性がない｡
今すぐ
それはなぜでしょうか？
なぜなら､ 技術的には私たちです｡
最初にウィザード､ 次にアーチャー､ ウィザードから受け継ぐ｡
名前と力｡
しかし､ 矢､ 名前､ 矢は決して与えなかった｡
うーん｡
では､ どうすればそれを解決できるのか｡
何かやってみよう｡
ここに矢印を追加したとします｡
この作品で100
ふむ｡
それじゃダメなんですね｡
そして､ これが多重継承の厄介なところで､ 実際に多重継承を許さないプログラミング言語もあるわけです｡
頭の中で､ これらのクラスがどのように実装されているかを理解し､ 何も上書きしていないことを確認する必要があるため､
少し厄介なことになります｡
私たちの場合､ コードを少し複雑にすることができます｡
では､ ここで何ができるのか？
ここなら､ こんなことができるかもしれない｡
その中でdefineと言える｡
これは自己を受信する｡
名前とパワーを受け取ります｡
そしてまた
矢印で示す｡
そして､ ここでようやく､ 「アーチャー」とも呼ぶことができるようになりました｡
ドット入り｡
それで売り逃げを喰らって､ 名指しでパスするんだよ｡
そして矢｡
これを実行すればいいように｡
さて､ ここで矢印100を追加して､ 実行をクリックします｡
これでよしとする｡
アローズが動作するようになりました｡
あとは､ ウィザードへの攻撃もうまくいっているかどうか､ 確認するだけです｡
もし攻撃するのであれば
そして､ 「実行」をクリックします｡
まいったなぁ｡
これで､ このハイブリッド・オブジェクトはパワーを持たなくなった｡
だから､ もう一度､ 私たちが力を持つためには､ これをコピーして､ 今回のウィザードをそれ自体に言って､
力を持たせる必要があります｡
実行」をクリックすると
わかりました｡
攻撃は有効です｡
Aeroのチェックに戻ろう｡
壊れていないことを確認してください｡
それをクリックしても､ 同様に機能します｡
そして最後に､ サインインについてはどうでしょうか｡
さて､ サインイン作業｡
ログインしています｡
わかりました｡
まいったなぁ｡
多かったですね｡
そして､ 実際にこの問題を解決するには､ いくつかの方法があります｡
ただ､ 今回お見せしたかったのは､ 多重継承をすると､ いろいろとややこしいことになるということです｡
そして､ 順を追って説明していきますが､ もし職場のチームにこのコードを理解しようとするコーダーが現れたらと想像してみてください｡
ここにかなりのロジックを追加しているので､ どんどん複雑になっていき､ 頭の中ですべてを把握するのは大変です｡
このように､ 多重継承は本当に強力なものですが､
強力であるがゆえに大きな責任が伴います｡
繰り返しになりますが､ プログラミング言語の中には､ 実際には多重継承ができないものがあるのも理由の一つです｡
ついでに言うと､ さらに混乱させることになる｡
そして次の動画は､ 「MARO」というものについてです｡
そして､ 複数の相続に慎重でありたい理由の､ もうひとつの好例になりそうです｡
その中でお会いしましょう｡
バイバイ｡