关于前端:Java中final关键字如何使用

6次阅读

共计 867 个字符,预计需要花费 3 分钟才能阅读完成。

final 变量只能赋值一次,赋值的形式有三种:

1)申明变量时间接赋值;

2)非动态成员变量在 {} 块中赋值,动态成员变量在 static{}块中赋值;

3)非动态成员变量在构造方法中赋值。

final 润饰类

final 类不能被继承,因而不会有子类。final 类中的办法不管是否有 final 批改,都是 final 的。

上面定义了一个简略的 final 类:

public final class FinalClass {}

// 上面的类继承将会呈现编译谬误

class Sub extends FinalClass {}

final 润饰办法

final 办法不能被 override。若父类中的游戏办法为 final 的,则子类不能 override 该办法,但能够调用该办法(父类的 final 办法)。

上面的程序试图重写游戏 http://www.cungun.comfinal 办法,将会引发编译谬误:

public class FinalMethod {
public final void say () {}

}

class Sub extends FinalMethod {
// 上面办法将会呈现编译谬误

public void say () {}

}

final 成员变量

final 润饰的变量不可被扭转,意思是不能被从新赋值。因为 final 润饰的成员变量不能从新赋值,所以 Java 语规定:final 润饰的成员变量必须由程序员显示的指定初始值。

final 润饰的类变量和实例变量指定初始值得中央如下:

1)类变量:必须在动态初始化块中指定初始值或申明该类变量时指定初始值,而且只能二选一指定。

2)实例变量:必须在非动态初始化块、申明该实例变量或结构器中指定初始值,而且只能三选一指定。

final 润饰根本类型变量和援用类型变量的区别:

当 final 润饰根本类型变量时,改根本类型变量不能被扭转。但对于援用类型变量而言,它保留的仅仅只是援用,final 只保障这个援用类型变量所援用的地址不会扭转,即始终援用同一个对象,但这个对象齐全能够产生扭转。

正文完
 0