- final修饰的属性又叫常量,一般用XX_XX_XX来命名
- final修饰的属性在定义时,必须赋初值,并且以后不能再修改,赋值的位置如下:(选择一个即可)
- 定义时:如public final double TAX_RATE = 0.08;
- 在构造器中
- 在代码块中
- 如果final修饰的属性是静态的,则初始化的位置只能是
- 定义时
- 在静态代码块中
(不能在构造器中赋值)
- final类不能继承,但是可以实例化对象。
- 如果类不是final类但含有final方法,则该方法虽然不能被重写,但是可以被继承。 ```java package test;
public class Detail { public static void main(String[] args) { CC cc = new CC(); new EE().cal(); } }
class AA { /*
1. 定义时:如 public final double TAX_RATE=0.08;
2. 在构造器中
3. 在代码块中
*/
public final double TAX_RATE = 0.08;//1.定义时赋值
public final double TAX_RATE2;
public final double TAX_RATE3;
public AA() {//2.构造器中赋值
TAX_RATE2 = 1.1;
}
{//3.在代码块赋值
TAX_RATE3 = 8.8;
}
}
class BB { / 如果final修饰的属性是静态的,则初始化的位置只能是 1 定义时 2 在静态代码块 不能在构造器中赋值。 / public static final double TAX_RATE = 99.9; public static final double TAX_RATE2;
static {
TAX_RATE2 = 3.3;
}
}
//final类不能继承,但是可以实例化对象 final class CC { }
//如果类不是final类,但是含有final方法,则该方法虽然不能重写,但是可以被继承 //即,仍然遵守继承的机制. class DD { public final void cal() { System.out.println(“cal()方法”); } }
class EE extends DD { } ```