【JAVA】非访问修饰符 final、static 、abstract

非访问修饰符

final修饰符

  final可以修饰类、属性和方法 <但不能用于修饰构造方法>

  private不能被子类方法覆盖,private类型的方法默认是final类型的
 
final修饰的变量有三种:静态变量、实例变量和局部变量,分别表示三种类型的常量。
  Tips:final变量定义的时候,可以先声明,而不给初值,这中变量也称为final空白,无论什么情况,编译器都确保空白final在使用之前必须被初始化。
 
1、final修饰类中的属性,声明变量时可以不赋值,且赋值后不能修改  <final属性可以在三个地方赋值:声明时、初始化块中、构造方法中。>
2、final修饰类中的方法。可以被继承,但继承后不能被重写。
3、final修饰类。类不可以被继承,也就是不能有子类
4、static final 用来修饰成员变量和成员方法,可简单理解为“全局常量”
 
 

static 修饰符

 static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块
1、被static修饰的成员变量和成员方法独立于该类的任何对象。它不依赖类特定的实例,被类的所有实例共享。
2、用public修饰的static成员变量和成员方法本质是全局变量和全局方法
 

abstract 修饰符

abstract 只能修饰类和方法,不能修饰变量  <类到对象是实例化,对象到类是抽象>

 1、抽象类也是类,属于引用数据类型

 2、抽象类定义语法

[修饰符列表] abstract class 类名 { }

 

3、abstractb不能和final、private、static联合使用,只能单独使用abstract或者联合public abstract使用

 

 

 


 

拓展1:访问控制修饰符

 

default (即默认,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。

private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)

public : 对所有类可见。使用对象:类、接口、变量、方法

protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)

 

方法继承的规则:

  • 父类中声明为 public 的方法在子类中也必须为 public。

  • 父类中声明为 protected 的方法在子类中要么声明为 protected,要么声明为 public,不能声明为 private。

  • 父类中声明为 private 的方法,不能够被子类继承。

 

 
 
posted @ 2023-05-11 17:05  Phoenixy  阅读(46)  评论(0编辑  收藏  举报