final
final修饰类,方法,基本类型变量,引用的时候分别由不同的意思
final修饰类
当Hero类被修饰成final的时候,表示Hero不能够被继承
其子类被修饰final的时候,也会出现编译错误
public final class Hero extends Object{
String name;
float hp;
}
final修饰基本类型变量
final修饰基本类型变量,表示该变量只有一次赋值机会
例子
public class main{
public static void main(String [] args){
final int hp;
hp = 5;
hp = 6; //这里就会报错
}
}
final修饰引用
h引用被修饰成final,表示该引用只有1次指向对象的机会
但是,依然可以通过h引用修改对象的属性值,因为hp没有被final修饰
public class Hero{
String name;
float hp;
float armor;
int moveSpeed;
public static void main(String[] args){
final Hero h;
h = new Hero();
h = new Hero();//该行会报错,因为h引用只有1次指向对象的机会
h.hp=5;
h.hp=6;
//这样是行得通的,因为final只修饰的是h引用,与对象属性无关;
}
}
问题
设计一个类SomeString,继承 String类。 能否继承?
答:不能,按住Ctrl 进入String类可以看见,String是被final修饰的类
被final修饰的类不能够被继承