//例子1
import javax.swing.JFrame;public class testFrame extends JFrame
{
public testFrame() 
{
super("我的测试        05-06-05,03:46");
                  //第一个问题A点 setSize(300,100);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
} public static void main(String[] arguments)
    {
        testFrame tf=new testFrame();
    }
}
//例子2
import javax.swing.JWindow;public class testWindow extends JWindow{
public testWindow()
    {
super();
                  //第一个问题B点 setBounds(250,225,300,150);
    } public static void main(String[] args) 
{
testWindow sW=new testWindow();
sW.setVisible(true);
for (int i=0;i<100;i++)
System.out.print(i+" ");
sW.setVisible(false);
System.exit(0);
}
}
第一个问题:以上A、B两点中super()的意思是什么?为何B点中如果键入A中("我的测试        05-06-05,03:46")的字符串文字就会显示出错,是否与javax.swing.JFrame、javax.swing.JWindow这两个类有关?第二个问题:如何在API中查找javax.swing.JFrame或javax.swing.JWindow中super()的注释?

解决方案 »

  1.   

    super()只会在构造函数中调用,他调用的是父(基)类的构造函数,因此:
    问题一:
    这里的super()指的是调用基类的构造函数,即A中的super(...)相当于调用的是JFrame的构造函数JFrame(...),而B中的super(),调用的是JWindow的构造函数JWindow()。因为JWindow没有JWindow(String )这个构造函数,所以B点中键入A中的字符串会出错。
    问题二:
    通过上面的解答,你应该明白,在API中肯定查不到实在的super()函数,它所对应的是这些类的构造函数。
      

  2.   

    TO: chylwk(沧海一浪)
    答得非常好,通过super()方法你可以直接调用父类的构造函数,简单明了。
      

  3.   

    super()代表的就是生成此类的父亲类的构造函数
    所以你调用父亲类的构造函数要小心,得先了解父类是否有这样的构造函数.