Java_修饰符

目录

在java中修饰符主要分为两类:++访问修饰符++和++非访问修饰符++

访问控制修饰符

修饰符 当前类 同一包内 子孙类 其他包 其他包子孙类
public Y Y Y Y Y
protected Y Y Y N Y/N
default Y Y N N N
private Y N N N N

访问控制和继承

  • 父类中声明为public的方法在子类中必须为public
  • 父类声明的protected的方法在子类中不能声明为private。可以声明为protected或public
  • 父类声明的private方法,不能被继承

非访问修饰符

static 修饰符

用来修饰类方法和类变量、动态代码块,对类变量和方法的访问可以直接使用 类名.属性名 和 类名.方法名 的方式访问。

final 修饰符

用来修饰变量、方法和类,分别表示变量不可变,方法不可覆盖,类不可继承。

变量能被显式地初始化并且只能初始化一次。被声明为 final 的对象的引用不能指向不同的对象。但是 final 对象里的数据可以被改变。也就是说 final 对象的引用不能改变,但是里面的值可以改变

abstract 修饰符
抽象类:

  1. 抽象类不能用来实例化对象,声明抽象类的唯一目的是为了将来对该类进行扩充
  2. 一个类不能同时被abstract和final修饰,如果一个类包含抽象方法,那么该类一定要声明为抽象类
  3. 抽象类可以包含抽象方法和非抽象方法

抽象方法:

  1. 抽象方法是一种没有任何实现的方法,该方法的具体实现由子类提供
  2. 抽象方法不能被声明为final和static
  3. 任何继承抽象类的子类必须实现父类的所有抽象方法,子类也是抽象类
  4. 抽象方法必须为public或者protected(因为如果为private,则不能被子类继承,子类便无法实现该方法),缺省情况下默认为public

synchronized 修饰符
synchronized声明的方法同时只能被一个线程访问

扫描二维码关注公众号,回复: 2747071 查看本文章

transient 修饰符
transient 关键字表示成员变量不参与序列化的过程

猜你喜欢

转载自www.cnblogs.com/zeo-to-one/p/9348419.html