final关键字修饰:类,方法,基本类型变量,引用,具有不同的意思
1.final修饰类
表示该类不能被继承
package property; public final class Hero extends Object{ String name; float hp; } public class ADHero extends Hero{ //会报错 }
2.final修饰方法
表示该方法不能被重写
package property; public class Hero extends Object{ String name; float hp; float armor; int moveSpeed; pubic final void useItem(Item i){ System.out.println("hero use item"); i.effect(); } } public class ADHero extends Hero{ public void useItem(Item i){//报错,无法重写final method System.out.println("ADHero"); } }
3.final修饰变量
表示该变量只有一次赋值机会
package property; public class Hero extends Object{ String name; float hp; float armor; int moveSpeed; public static void main(String[] args){ final int hp; hp=5; hp=6;//不能给hp在赋值了 } }
4.final修饰引用
表示该引用只有一次指向对象的机会。
package property; public class Hero extends Object{ String name; float hp; float armor; int moveSpeed; public static void main(String[] args){ final int hp; hp=5; hp=6;//不能给hp在赋值了 final Hero h; h=new Hero(); h=new Hero();//报错,h不能再一次指向对象了 } }