Java——static修饰符、final修饰符、abstract修饰符、接口

时间:2022-06-20 17:13:37

一、static修饰符

static修饰符可以修饰变量、方法或代码块

用static修饰的变量叫静态变量。

静态变量有如下注意事项:

  • 类中的静态变量属于类,而不属于某个特定的对象。
  • 类的静态成员可以与类的名称一起使用,而无须创建类的对象。(可以直接通过类名来访问静态变量,建议使用类名来调用静态变量
  • 静态变量或方法也称为类的变量或方法。
  • 不管创建了类的多少实例,整个类中静态变量的副本只有一个,声明为static的变量实质上就是全局变量。

静态方法

  • 类的静态方法只能访问其他的静态成员,不能访问非静态成员。
  • 静态方法中没有this关键字。
  • 静态方法不能被覆盖(重写)为静态方法。

静态代码块

静态代码块是由static和{}组成的代码片段

静态代码块使用时有如下注意事项:

  • 如果需要通过计算来初始化静态变量,可以声明一个静态块。
  • 静态块仅在该类被加载时执行一次
  • 只能初始化类的静态数据成员。

二、final修饰符

final修饰符可修饰类、方法和变量。final在修饰类、方法和变量时表示的意义是不同的,但本质是一样的,即final表示不可改变。

final修饰类

  • final修饰的类不能被子类继承。

final修饰方法时,有如下规定:

  • 使用在方法声明中使用final关键字向编译器表明子类不能覆盖此方法
  • 使用在声明类中,一个final方法只能被实现一次。
  • 使用如果一个类为final类,那么它的所有方法都为隐式的final方法。

final修饰变量

  • 一个变量可以声明为final,这样的目的是阻止它的内容被修改
  • 声明final变量后,变量只能被初始化一次,然后就不能对其值进行修改了,一个final变量实质上是一个常量。

三、abstract修饰符

abstract修饰符用来修饰类和方法,使用abstract修饰符有如下规则:

  • 修饰的类即为抽象类,不能被实例化
  • 构造方法和static方法不能是抽象的。
  • 父类的抽象方法往往在子类中实现,抽象类可以具有指向子类对象的对象引用。

抽象类中的方法既可以是具体方法也可以是抽象方法,但一个类中如果有抽象方法那么这个类一定是抽象类。

四、接口

其实接口就是一套规范。

在Java中,使用interface关键字来定义接口,接口中的方法都只有声明,没有方法主体,也可以理解为接口中只能有抽象方法。接口就是用来被子类实现的,这样可以让不同的子类遵守相同的规范,但却又有自己的实现。