final关键字
四种常见用法
1.修饰一个类
2.修饰一个方法
3.修饰一个成员变量
4.修饰一个局部变量
final修饰一个类
格式:public final class 类名称 {
方法体
}
小结:①final 修饰过的类 就不可以在有子类了。②final修饰的类中的方法无法进行方法的覆盖重写(因为覆盖重写是需要有子类的,子类对父类的方法 进行覆盖重写,可是final修饰过的类是不可以作为父类的)③final修饰的类中的方法是可以覆盖重写父类的方法的,因为final修饰的类是可以有父类的
final修饰一个方法
格式:修饰符 final 返回值类型 方法名(参数列表){
方法体
}
小结:①final 修饰过的方法是不可以让子类进行覆盖重写的,但是这个类是可以有子类的。②final和abstract关键字是相互矛盾的,abstract修饰的方法 是抽象方法,没有方法体,那么这个类也要是抽象类,它的子类就必须要覆盖重写这个抽象方法,可是final修饰的方法是不能让子类进行覆盖重写的。
final修饰局部变量
例如:
final int num1=20;//正确
num1=20;//这是就会报错,已经给num1赋值过,就不可以在进行更改
当这次给num1赋值以后,就不可以在给num1改变它的类型
final int num2;
num2=20;//这是可以的,只要只进行了一次赋值就可以;
num2=20;//在进行相同数据的赋值也是不可以的
小结:对于基本类型来说,不可以改变的是变量中的数据不可以改变
对于引用类型来说,不可以改变的是变量中的地址值不可以改变‘
对于引用类型变量来说,地址值是不不可以进行改变的 但是里面的内容是可以进行改变的
final修饰成员变量
①成员变量是有默认值得,所以当用final修饰了以后,就必须对他进行手动的赋值
②对于final的成员变量要么直接赋值,要么通过构造方法对他进行赋值
③必须保证类当中所有重载的构造方法,都最终会对final的成员变量赋值