final-----概念
1.当不希望父类的某个方法被子类覆盖(override)时,可以用final关键字修饰。
2.当不希望类的某个变量的值被修改时,可以用final修饰。如果要用final,则必须赋初始值,不然编译不过
3.当不希望被继承时,可以用final修饰。
package demo;
public class test4 {
public static void main(String[] args) {
Bbb aBbb = new Bbb();
System.out.println("a=="+aBbb.get_a());
}
}
class Aaa
{
int a=0; //?如果不给初始值,a=?
final float b = 3.141592654f;
final public void sendMessage()
{
System.out.println("发消息!");
}
}
class Bbb extends Aaa
{
// public void sendMessage()
// {
// 这里报错,final定义的不能被覆盖
// }
public Bbb()
{
a++;
//b++; //这里报错 The final field Aaa.b cannot be assigned
}
public int get_a()
{
return a;
}
}
final class Ccc
{
//不能被继承
}
//class Ddd extends Ccc
//{
// //The type Ddd cannot subclass the final class Ccc
//}
注意事项:
1.final修饰的 变量又叫常量,一般用 xx_xx_xx来命名
2. final修饰的变量在定义时,必须赋值,并且以后不能再赋值
final什么时候用?
1.因为安全的考虑,类的某个方法不允许被修改
2.类不会被其它类继承
3.某些变量值是固定不变的,比如圆周率3.141592......