オブジェクト ポインターをその基底クラスにキャストすると、メモリは正確にどうなるのだろうといつも思っていました。サブクラスのすべてのメンバー関数と変数を格納するメモリはまだそこにあり、現在は「立ち入り禁止」になっていると思います。これは正しいですか?もしそうなら、抽象/仮想関数はどのように機能しますか? この場合、サブクラスの実装を基本クラスのポインターから呼び出すことができるのはなぜですか?
また、言語によって違いますか?明らかに、C++ はスタックとヒープを使用しますが、Java はヒープのみを使用します。これは、ポリモーフィックな関係のメモリが異なる方法で処理されることを意味しますか?
そして、これに関連して、プライベート、プロテクト、さらには仮想継承などはどのように機能するのでしょうか?