以下是引用fengyumanlou在2007-8-5 10:39:42的发言:
噢,那意思是说,这里一定用初始化父类对象和方法?这怎么看出来的?
饿。。。不好意思。刚刚那段是书上抄来的。
这边并没有父类的对象。所以不存在初始化父类的对象。
人在江湖【走】,怎能不挨【刀】;为了能活【口】,唯有把己【超】!come on...
噢,那意思是说,这里一定用初始化父类对象和方法?这怎么看出来的?
饿。。。不好意思。刚刚那段是书上抄来的。
这边并没有父类的对象。所以不存在初始化父类的对象。
原理是这样的:
生成子类时要在内存中分配
1父类所有的变量和方法的入口地址
2子类新增的变量和方法的入口地址
所以在生成子类时要先调用父类的某个构造方法
一
比如这条语句
public ExitableJFrame(String title){
super(title); //调用构造函数?好象是饿!
}
这里的super(title)就表示父类的一个构造方法,如果不写则默认调用不带参数的构造方法.
二
至于这条
protected void frameInit(){
super.frameInit(); //调用JFrame.frameInit()
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
由于子类覆盖了父类的方法.用super.frameInit()调用父类被覆盖的方法.
三
你问不用这两条语句能运行吗?不明白你的意思.最好明确你想干什么.