import javax.swing.*;
class Foo{
public static void main(String args[]){
JFrame f=new JFrame();
f.add("North",new JButton()); //Line 1
f.add(new JButton(),"North"); //Line 2
f.setVisible(true);
}
}
スイングAPIは、JFrameクラスにjava.awt.Containerから継承されたaddという名前の5つのメソッドと、java.awt.Componentから継承された別のaddメソッドが含まれていると述べています。
**Their signatures are as follows:**
*Inherited from java.awt.Container*
add(Component)
add(Component,int)
add(Component,Object)
add(Component,Object,int)
add(String,Component)
*Inherited from java.awt.Component*
add(java.awt.PopupMenu)
APIには、署名add(Component、String)とadd(String、Component)を持つ2つのオーバーロードされたメソッドがあると予想しました。しかし、そうではないので、1行目はadd(String、Component)を呼び出し、2行目はadd(Component、Object)を呼び出すと仮定します。
また、呼び出されたメソッドがどのように実装されているかについて、誰かに説明してもらえますか。APIのソースを見てこれを理解しようとしましたが、メソッド呼び出しチェーンは迷路のようなものであり、以前にそこにいた人のガイダンスを使用できました。