Java final关键字
---恢复内容开始---
final:最终的
final可修饰类,方法,属性和变量
- final修饰类时,则该类不允许被继承
- final修饰方法时,则该方法不允许被覆盖(重写)
- final修饰属性时,则①该类的属性不会进行隐性的初始化(类的初始化属性必须有值)或②在构造方法中赋值(但只能二选一)
- final修饰变量时,则该变量的值只能赋一次值,即变为常量
例:
class Animal{ //若在class前加final,则class Dog extends Animal{}会报错(看1)
public int age=10; //若在public前加final,则①age=20;和dog.age=10;会报错;②将“public int age=10;”改成“final public int age; //age=20(第十行的);”后,程序也会报错,因为用了final,系统不
//会帮我们初始化;若将“public int age=10;”改成“final public int age;”后,不注释掉“age=20(第十行的);”的话,系统不会报错
public String name;
public void eat(){ //若在public前加final,则public void eat(){}会报错(看2)
System.out.println("动物具有吃东西的能力");
}
}
public Animal(){
System.out.println("Anmial执行了");
age=20;
}
class Dog extends Animal{
public void eat(){
}
public Dog(){
System.out.println("Dog类执行了");
}
}
class Ex17{
public static void main(String[] args){
Animal animal=new Animal();
System.out.println("animal.age="+animal.age);
Dog dog=new Dog();
dog.age=10;
dog.name="二哈";
dog.eat();
}
}
---恢复内容结束