実態が子クラスなら、親クラスとして扱っても子クラスのメソッドが実行される実態が孫クラスの場合は孫クラスのメソッドが呼ばれる親から子、孫へと呼び出される関数が探されていく感じオーバーロードされたメソッド呼び出しはコンパイル時に決定virtual関数のように実態で切り替えが出来ない実態が子クラスでも、親クラスとして扱うなら親クラスのメソッドが実行される一致するものが無い場合は親クラスにキャストして一致するものを探す子から親へと一致するものを探していく感じオーバーライドとはメソッドのオーバーライドとは、親クラスのメソッドを子クラスで再定義することです。子クラスのオブジェクトを親クラスにキャストしてメソッドを呼び出しても、再定義された子クラスのメソッドが呼ばれます。ext」が表示されます。0;}このように、オーバーライドされたメソッドは実行時にどのメソッドが呼ばれるか決定されます。オーバーロードとは一方、似たような名前でオーバーロードというものもあります。引数の種類をみて自動的に一致するメソッドが実行されます。それぞれ引数が一致する関数が呼ばれるため、base、extと表示されます。実際はコンパイル時にすでにどれが呼び出されるか決定しています。そのため、以下のように実態が子クラスだとしても、親クラスとして引数に渡した場合、親クラスのメソッドが呼ばれます。extただし親クラスは検索対象になる一方でオーバーロードは型が一致するものが無い場合は引数として渡されたクラスの継承ツリーをたどり、一致する親クラスを探してそれにキャストして実行してくれます。親クラスから子クラスへはコンパイル時にはわからないため、子クラスから親クラスに検索を行います。そのため、以下のコードは「ext」と表示されます。ota42yC++/Ruby/RoR/golang/rust/flutter。