下面有关java final的基本规则,描述错误的是?
Afinal修饰的类不能被继承
Bfinal修饰的成员变量只允许赋值一次,且只能在类方法赋值
Cfinal修饰的局部变量即为常量,只能赋值一次。
Dfinal修饰的方法不允许被子类覆盖
正确答案:B
解析:
final修饰的成员变量为基本数据类型是,在赋值之后无法改变。当final修饰的成员变量为引用数据类型时,在赋值后其指向地址无法改变,但是对象内容还是可以改变的。
final修饰的成员变量在赋值时可以有三种方式。1、在声明时直接赋值。2、在构造器中赋值。3、在初始代码块中进行赋值。
final修饰的方法,不允许被子类覆盖。
final修饰的类,不能被继承。
final修饰的变量,不能改变值。
final修饰的引用类型,不能再指向别的东西,但是可以改变其中的内容。
(1)、final代表一个恒定不变的量。
(2)、当final修饰一个基本数据类型时代表数值恒定不变,当修饰一个引用数据类型时代表引用恒定不变,但是对象内容可以改变。
(3)、对于final修饰的变量且不是static的,其定义可以在三个位置。1,变量申明处,2、非静态构造代码块,3构造函数。从而保证在使用之前已被初始化。
(4)、对于static final修饰的变量,其定义可以有两处。1、变量申明处,2、静态构造代码块。
(5)、static final和final之间的区别是,前者代表对于一个类恒定不变的属性,后者代表对于一个类来说恒定不变的属性,但是对于同一个类不同对象之间还是可以变换的。
(6)、对于一个类中private的方法,其隐士地指定为final的。
(7)、对于final类,其域是否为final根据自己情况而定,但是其方法都是final的。
解题技巧:
答案中有只有两个子的,一般都是错的。