final修饰符

1.final能修饰什么?

final是一个修饰符,那么它能修饰什么呢?先看下面的代码:


java中interface中常量的修饰符 java中常量用什么修饰_修饰符


看完上面的代码总结如下:


java中interface中常量的修饰符 java中常量用什么修饰_抽象类_02


2.final的作用

常量

  • 常量是一种特殊的变量,只有一次赋值的机会,一旦赋值就不能改变。
  • final 类型 常量名 = 值;

注意:

因此,分配空间时不会为final修饰的实例变量赋默认值,所以在定义final修饰的变量时,必须设置初始化值。

如果在赋初始值阶段没有给final修饰的实例变量赋初始值, 那么就必须在构造方法中给它赋值。每个对象可以有值不相同的属性,属性值不能改变,可以看作只读属性。


java中interface中常量的修饰符 java中常量用什么修饰_赋值_03


final修饰的实例变量,可以赋初始值,也可以在构造方法中 赋值,但是不能同时赋值,也不能同时不赋值。如果多个对象的属性值相同且不能修改,不如定义成类变量。


java中interface中常量的修饰符 java中常量用什么修饰_修饰符_04


final修饰类变量:

  • 类变量在类加载的时候被创建
  • 不能在构造方法中赋值
  • 可以赋初始值
  • 可以在静态初始代码块中赋值

最终方法

  • 使用final修饰符修饰的方法叫做最终方法
  • 可以被子类继承
  • 不能被子类覆盖

最终类

  • 使用final修饰符修饰的类叫做最终类
  • 不能被其它类继承
  • 最终类的所有方法都是最终方法

abstract修饰符

1.abstract能修饰什么?

还是先看一段代码:


java中interface中常量的修饰符 java中常量用什么修饰_private修饰的变量如何调用_05


看完上面的代码总结如下:


java中interface中常量的修饰符 java中常量用什么修饰_private修饰的变量如何调用_06


2.abstract的作用

抽象类

  • 使用abstract修饰符修饰的类叫做抽象类
  • 能够声明引用
  • 不能创建对象
  • 可以被继承

抽象方法

  • 使用abstract修饰符修饰的方法叫做抽象方法
  • 只有方法的声明,没有方法的实现

总结:

  • 如果一个类中有抽象方法,那么这个类必须是抽象类
  • 抽象类中未必有抽象方法
  • 如果一个类继承了抽象类,它自己不想做为抽象类,就必须实现父类中所有声明的抽象方法(方法覆盖)
  • 抽象类可以有构造方法,可以通过继承的子类super调用

修饰符总结

  • static、final和abstract都能修饰方法。
  • static、final和abstract都不能修饰构造方法。private、(package private)、protected和public都能修饰属性、方法和构造方法。
  • 访问权限修饰符可以和其它修饰符搭配使用。
  • 不能同时使用两个以上访问权限修饰符。
  • final和abstract不能同时使用。
  • static和abstract不能同时使用。
  • private和abstract不能同时使用。
  • 除此以外,可以同时使用。