版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
final的可以修饰的范围
//基本都可以修饰
1.可以修饰一个类
2.可以修饰一个方法
3.可以修饰一个局部变量
4.可以修饰一个成员变量
//当修饰一个类的时候
当用final定义一个类时,不能有子类,但是一定有一个父类,实在没有就是公共的父类Object,既然没有子类,则final类是不可以覆盖重写的;
但是可以对自己的父类方法进行覆盖重写
//定义一个final类
//当extends一个final父类时,编译器报错
当用final修饰一个方法时,这个方法就是最终方法,也就是不能被覆盖重写的
//用final修饰一个方法
//重写final方法会报错
注意事项:abstract和final不能同时修饰一个方法,因为abstract是必须要重写的,但是final类又是不能重写的,互为矛盾
//当定义局部变量时:
其定义的基本数据类型的数据是不可改变的;
其定义的引用类型的地址值是不可改变的;
但是引用类型的new的对象里面的方法赋值是可以改变的;
//当用final定义成员变量时:
1.由于成员变量具有默认值,所以用了final之后必须手动赋值,不可以再给默认值了,而且必须注意的是,要么使用直接赋值,要么通过构造方法赋值