JavaSE知识重构

JavaSE知识重构


文章目录

  • JavaSE知识重构
    • final关键字
      • 需要使用final的需求:
      • final注意细节
    • 抽象类


final关键字

final可以修饰类、属性、方法和局部变量

需要使用final的需求:

  1. 类不可以被继承
  2. 父类的某个方法不可以被子类覆盖/继承(override)
  3. 类的某个属性值不可以被修改
  4. 某个局部变量不可以被修改

final注意细节

  1. final修饰的属性叫做常量,XXX_XXX_XXX来命名
  2. final修饰的属性在定义时,必须赋初值,并且之后不能修改。
    赋值可以在如下位置:
    • 定义时
    • 在构造器中
    • 在代码块中
  3. 如果final修饰的属性是静态的,则初始化的位置只能是:
    • 定义时
    • 在静态代码块,不能在构造器中赋值
  4. final类不能继承,但可以实例化对象
  5. 如果类不是final类,但含有final方法,则该方法不能重写,但可以被继承。
  6. 如果一个类已经是final类了,没必要再将方法修饰成final方法
  7. final不能修饰构造方法(即构造器)
  8. final、static往往搭配使用,效率高,不会导致类加载(底层编译器做了优化处理)
  9. 包装类(Integer, Double, Float, Boolean等都是final),String类也是final类。

抽象类

exercise:
1、abstract final class A{}能编译通过嘛?错误,final不能继承
2、abstract public static void test2();能编译通过吗?错误,static关键字和方法重写无关。
3、abstract private void test3();错误,私有的方法不能重写。
模板设计模式:

你可能感兴趣的:(Java,SE,重构,java)