备案老域名

已经备案域名购买,老域名出售,已备案域名交易,老域名查询,已经备案域名注册,老域名抢注,Godaddy,宜春网站建设

继承情况下的初始化

当你用Java运行文件的时候,第一件事情就是访问main()(这是一个static方法),于是装载器就会为你寻找经编译的类的代码。在装载的过程中,装载器注意到它有一个基类(也就是extends所要表示的意思),于是它再装载基类。不管你创不创建基类对象,这个过程总会发生。

如果基类还有基类,那么这第二个基类也会被装载,以此类推。下一步,它会执行“根基类”的static初始化,然后是下一个派生类static初始化,以此类推。这个顺序非常重要,因为派生类的“静态初始化”有可能要依赖基类成员的正确初始化。

继承与清理

即便新类既有合成又有继承,绝大多数情况下,你都无须担心清理的问题;子对象通常都可以交由垃圾回收器去处理。如果真的需要进行清理,那就只能辛苦一点,为新类创建一个dispose()方法了(你也可以选一个你觉得更好的名字)。而且在继承情况下,如果垃圾回收过程中还要做一些特殊的处理,那你还必须在派生类里覆写基类的dispose()。当你编写派生类的dispose()的时候,要记住第一件事就是调用基类的dispose(),这点非常重要。因为不这样做的话,基类就不会得到清理。

对象与对象之间有可能会有依赖关系,因此清理的顺序应该与初始化的顺序相反。对数据成员而言,这就是说它们的清理顺序应该与声明的顺序相反(因为数据的初始化是按照声明的顺序进行的)。对基类而言(它采用了C++拆构函数的形式),你应该先进行派生类的清理,再进行基类的清理。这是因为派生类的清理可能需要调用某些基类的方法,也就是说要留着基类,因此它不能过早地被清除掉。你可以从程序的输出看出,对象各部分的清理顺序,正好与它们创建的顺序相反。

分页:«1»

日历

控制面板

搜索

图标汇集

    • 订阅本站的 RSS 2.0 新闻聚合

Copyright www.hfyixinsoft.cn. Some Rights Reserved.