备案老域名

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

Final关键词的使用——方法

使用final方法的目的有二。第一,为方法上锁,禁止派生类进行修改。这是处于设计考虑。当你希望某个方法的功能,能在继承过程中被保留下来,并且不被覆写,就可以使用这个方法。

第二个原因就是效率。如果方法是final的,那么编译器就会把调用转换成内联的。当编译器看到要调用final方法的时候,它就会根据判断舍弃普通的,插入方法调用代码编译机制(将参数压入栈,然后跳去执行要调用的方法的代码,在调回来清空栈,再处理返回值,相反它会用方法本身的拷贝来代替方法的调用。当然如果方法很大,那么程序就会膨胀的很快,于是内联也不会带来什么性能的改善,因为这种改善相比程序处理所耗用的时间是微不足道的。

使用final需要注意的问题

看来,设计类的时候将方法定义成final的,会是一个很明智的决定。可能你会觉得没人要覆写你的方法,有时确实是这样。但是你这么假设的时候一定要非常谨慎。一般来说,要实现预想“类会怎样被复用”是非常困难的,特别是对那些很通用的类来说。如果你把类定义成final的,那么很可能会发生这种情况,由于你没有料到这个类还能被这么使用,其它项目的程序要就没法通过继承来复用这个类了。

标准Java类库就是一个活生生的例子。特别是vector类,这个类曾被广泛使用,如果不是为了追求效率而把它的所有方法都做成final的话,它的用途可能会更广。这个类太有用了,因此应该很容易向导会有人要继承它并且覆写其中的方法,但是类的设计者们不知怎么搞的,认定这么做是不对的。有两个理由使得这种想法变得非常具有讽刺意味。

分页:«1»

日历

控制面板

搜索

图标汇集

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

Copyright www.hfyixinsoft.cn. Some Rights Reserved.