1. Final修饰类
final修饰的类,不能被继承。
格式如下:
final class 类名 {
}
代码:
final class Fu {
}
// class Zi extends Fu {} // 报错,不能继承final的类
2.Final修饰方法
final修饰的方法,不能被重写。
格式如下:
修饰符 final 返回值类型 方法名(参数列表){
//方法体
}
代码:
class Fu2 {
final public void show1() {
System.out.println("Fu2 show1");
}
public void show2() {
System.out.println("Fu2 show2");
}
}
class Zi2 extends Fu2 {
// @Override
// public void show1() {
// System.out.println("Zi2 show1");
// }
@Override
public void show2() {
System.out.println("Zi2 show2");
}
3.Final修饰变量
- 修饰局部变量
基本类型的局部变量,被final修饰后,只能赋值一次,不能再更改。
public class FinalDemo1 {
public static void main(String[] args) {
// 声明变量,使用final修饰
final int a;
// 第一次赋值
a = 10;
// 第二次赋值
a = 20; // 报错,不可重新赋值
// 声明变量,直接赋值,使用final修饰
final int b = 10;
// 第二次赋值
b = 20; // 报错,不可重新赋值
}
}
- 修饰成员变量
成员变量涉及到初始化的问题,初始化方式有显示初始化和构造方法初始化,只能选择其中一个
1.显示初始化(在定义成员变量的时候立马赋值)(常用)
public class Student {
final int num = 10;
}
2.构造初始化
每个构造方法中都要赋值一次!
public class 构造方法初始化 {
final int num = 10;
final int num2;
public 构造方法初始化() {
this.num2 = 20;
// this.num2 = 20;
}
public 构造方法初始化(String name) {
this.num2 = 30;
// this.num2 = 20;
}
public void show() {
System.out.println(num + "," +num2);
}
public class 构造方法初始化Test {
public static void main(String[] args) {
构造方法初始化 s1 = new 构造方法初始化();
构造方法初始化 s2 = new 构造方法初始化("mmy");
s1.show();
s2.show();
System.out.println(s2); /*新建对象,然后输出对象,输出的是对象的地址*/
System.out.println(s1);
/*输出,10,20
10,30
finals.构造方法初始化@16f65612
finals.构造方法初始化@311d617d
*/
}
}