私の推測では、コンパイラの最適化 (例: インライン化) では、メソッドがいくつかのレベルで「ネスト」されているかどうかは実質的に違いはありません。果たしてそうであろうか。
たとえば、次の 3 つのクラスが宣言されているとします。
public class Third extends Second
{
public int test3() // Call test2() and nothing else
{
return super.test2();
}
}
public class Second extends First
{
public int test2()
{
return super.test1(); // Call test1() and nothing else
}
}
public class First
{
public int test1() // Calculate a result somehow
{
int result = 0;
...
return result;
}
}
既にインスタンス化された 3 つのオブジェクトthird
、second
およびが与えられた場合first
、次の呼び出しのコストは実質的に同じですか?
third.test3();
third.test2();
third.test1();
second.test2();
second.test1();
first.test1();
メソッドの名前が同じ場合、最適化に違いはありますか?