修饰符

修饰符用来定义类、成员变量或方法。
Java语言中修饰符主要分为两类:访问修饰符和非访问修饰符。

访问控制修饰符

范围 private default protected public
同一类中 T T T T
同一个包内 F T T T
同一个包内和子类中 F F T T
所有类 F F F T

private

  1. 类和接口不能声明为private;

default

  1. 接口的成员变量都隐式声明为public static final;
  2. 接口里的方法默认情况下访问权限为public;

protected

  1. 类和接口不能声明为protected;
  2. 接口的成员变量和成员方法不能声明为protected;

public

访问权限继承

  1. 父类中声明为public的属性在子类中也必须是public;
  2. 父类中声明为protected的属性在子类中要么声明为protected,要么声明为public。不能声明为private;

非访问控制修饰符

static

  1. 静态方法中不能使用非静态变量;

final

  1. final修饰的变量只能被初始化一次,之后不能修改;
  2. 若final修饰的变量是一个对象引用,则此引用不能再指向其他对象,但此对象中的属性是可以改变的;
  3. final修饰的成员方法,可以被子类继承,但不能重写(override);
  4. final修饰的类不能被继承;

abstract

  1. 抽象类不能被实例化;
  2. 一个类不能同时被final和abstract修饰;
  3. 抽象类没必要一定有抽象方法,但有抽象方法的类一定得是抽象类;