最近在刷面试题的时候,发现自己对final关键字的了解还是不够完善,故此在这出一篇专门针对final修饰词的文章。
首先,final可以修饰哪些东西:
1. final修饰类
final修饰的类不能被子类继承,如String就是被final修饰的,保证了String的安全性
2.final修饰方法
final修饰的方法不能被子类重写
事实上我们经常使用的private修饰方法被隐式的指定为final,如果在子类中定义的方法和基类的一个private修饰的方法签名相同的话,此时的子类的方法就不是重写基类的方法,而是在子类中定义了一个新的方法。
注意的是:这里指的是不能重写,但没说不能重载呀!!!
3.final修饰变量
final修饰成员变量时必须赋值,而局部变量可以暂且不赋值,如果不赋值的话会直接报错。
这里和static区分一下,static修饰变量的时候会自动赋值,并不需要手动赋值才能使用。只不过可能是你不想要的值,但他还是能够直接使用的。
4.final搭配static使用修饰
final static double PAI_Value=3.14;
我们结合static和final的特点就知道了,静态变量不需要对象就可以使用,而且可以被全局调用,当再加上final后,它就变成了一个全局的常量。
5.final修饰对象
final修饰对象的时候可以说是引用类型,final使得引用不变,也就不能引用其他对象,但是被引用的对象本身是可以修改的。
注意的是,网上有部分人说final可以修饰接口.
这个是错误的。
给张图片说明比理论更为有说服力。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/198004.html