Javafinal⽅法
之所以要使⽤final⽅法,可能是出于对两⽅⾯理由的考虑。第⼀个是为⽅法“上锁”,防⽌任何继承类改变它的本来含义。设计程序时,若希望⼀个⽅法的⾏为在继承期间保持不变,⽽且不可被覆盖或改写,就可以采取这种做法。java做什么的
采⽤final⽅法的第⼆个理由是程序执⾏的效率。将⼀个⽅法设成final后,编译器就可以把对那个⽅法的所有调⽤都置⼊“嵌⼊”调⽤⾥。只要编译器发现⼀个final⽅法调⽤,就会(根据它⾃⼰的判断)忽略为执⾏⽅法调⽤机制⽽采取的常规代码插⼊⽅法(将⾃变量压⼊堆栈;跳⾄⽅法代码并执⾏它;跳回来;清除堆栈⾃变量;最后对返回值进⾏处理)。相反,它会⽤⽅法主体内实际代码的⼀个副本来替换⽅法调⽤。这样做可避免⽅法调⽤时的系统开销。当然,若⽅法体积太⼤,那么程序也会变得雍肿,可能受到到不到嵌⼊代码所带来的任何性能提升。因为任何提升都被花在⽅法内部的时间抵消了。Java编译器能⾃动侦测这些情况,并颇为“明智”地决定是否嵌⼊⼀个final⽅法。然⽽,最好还是不要完全相信编译器能正确地作出所有判断。通常,只有在⽅法的代码量⾮常少,或者想明确禁⽌⽅法被覆盖的时候,才应考虑将⼀个⽅法设为final。类内所有private⽅法都⾃动成为final。由于我们不能访问⼀个private⽅法,所以它绝对不会被其他⽅法覆盖(若强⾏这样做,编译器会给出错误提⽰)。可为⼀个private⽅法添加final指⽰符,但却不能为那个⽅法提供任何额外的含义。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论