Java final关键字

---恢复内容开始---

final:最终的

final可修饰类,方法,属性和变量

  1. final修饰类时,则该类不允许被继承
  2. final修饰方法时,则该方法不允许被覆盖(重写)
  3. final修饰属性时,则①该类的属性不会进行隐性的初始化(类的初始化属性必须有值)或②在构造方法中赋值(但只能二选一)
  4. 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();

   }

}

---恢复内容结束

posted @ 2017-12-03 20:16  糖分控  阅读(178)  评论(0编辑  收藏  举报