memoranda2015-08-08オブジェクト指向におけるポリモーフィズムについてポリモーフィズムに関する動作をどうすれば機械的に理解できるのかを考えていて何度も失敗して今に至るのだが、今回こそはと絵を作成してみた。JavaとC++(ほぼ同じ)でコードは絵と対応付けて実装している。Javaであれば、private関数以外はサブクラスにオーバーライドされるし、C++であれば、virtualメンバ関数はサブクラスのオーバーライドされる。スーパークラスの参照変数・ポインタ変数に、サブクラスのインスタンスを代入して使うべきもの(これこそがポリモーフィズム)であるが、以下は比較のためにサブクラスの参照変数・ポインタ変数を使っている場合も実装している。func2はBaseの参照変数を使ってSubインスタンスのfunc2メソッドを呼んでいる。Baseのfunc2はprivateであり、Subのfunc2ではオーバーライドされない。Baseの参照変数を使っているため、ポリモーフィズムにより、Baseのfunc2メソッドが実行される。func2はBaseの参照変数を使っていないため、Subのfunc2メソッドが実行される。Baseクラスのfunc2のprivate指定を外した結果が以下になる。func2のfunc2メソッドはSubクラスのものが呼ばれている。仮想マシンのスタックとネットワークI/Oについて月別アーカイブ参加グループインターネットテクノロジープログラミングはてなブログをはじめよう!nishidyさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。