关于final关键字

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_42376204/article/details/101225658

final的可以修饰的范围
//基本都可以修饰
1.可以修饰一个类
2.可以修饰一个方法
3.可以修饰一个局部变量
4.可以修饰一个成员变量

//当修饰一个类的时候
当用final定义一个类时,不能有子类,但是一定有一个父类,实在没有就是公共的父类Object,既然没有子类,则final类是不可以覆盖重写的;
但是可以对自己的父类方法进行覆盖重写

//定义一个final类
在这里插入图片描述
//当extends一个final父类时,编译器报错
在这里插入图片描述

当用final修饰一个方法时,这个方法就是最终方法,也就是不能被覆盖重写的

//用final修饰一个方法
在这里插入图片描述

//重写final方法会报错
在这里插入图片描述

注意事项:abstract和final不能同时修饰一个方法,因为abstract是必须要重写的,但是final类又是不能重写的,互为矛盾

在这里插入图片描述

//当定义局部变量时:
其定义的基本数据类型的数据是不可改变的;
其定义的引用类型的地址值是不可改变的;
但是引用类型的new的对象里面的方法赋值是可以改变的;
在这里插入图片描述

//当用final定义成员变量时:
1.由于成员变量具有默认值,所以用了final之后必须手动赋值,不可以再给默认值了,而且必须注意的是,要么使用直接赋值,要么通过构造方法赋值
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_42376204/article/details/101225658
今日推荐