Java中final关键字的所有作用(笔记)

// final 修饰的类不能被继承,常用于修饰工具类,不允许第三方修改使用
final class tools { 
    String tool;
}

class A {
    final boolean name = false; // final 修饰的变量变成常量,只能被赋值一次(基本类型)
    final int age;
    {
        age = 21; // final 修饰的变量可在构造方法或构造代码块内初始化
    }

    final void method() { // final 修饰的方法不能被重写,但可以重载
        System.out.println("final method");
    }
}

class B extends A {

    String gender;

    // 错误写法,重写父类中的方法
    // public void method() {
    // 
    // }

    public void method(String gender) { // 允许重载被final修饰的方法
        this.gender = gender;
    }
}

public class Demo1 {

    public static void main(String[] args) {
        final B b = new B(); // final 修饰引用类型,地址值仅赋值一次且不能改变,但对象属性值可以改变
        // b = new B(); error
        b.gender = "男";
        System.out.println(b.gender);
    }
}

你可能感兴趣的:(java)