Java中static与final的用法 hunter

static

static意为静态的,但凡被static修饰说明属于类,不属于类的对象。
加载:static在类加载时初始化(加载)完成。
可修饰:

  • 内部类
  • 方法
  • 成员变量
  • 代码块

注意:
static方法不能兼容this关键字。
你不能覆盖Java中的静态方法,因为方法覆盖基于运行时的动态绑定,静态方法在编译时使用静态绑定进行绑定。
虽然可以在子类中声明一个具有相同名称和方法签名的方法,看起来可以在Java中覆盖静态方法,但实际上这是方法隐藏。

final

加载:final可以在编译(类加载)时初始化,也可以在运行时初始化,初始化后不能被改变。
可修饰:类、内部类、方法、成员变量、局部变量、基本类型、引用类型。

  • final修饰基本类型:值不能被修改
  • final修饰引用类型:引用不可以被修改也就是说不能指向其他对象,但是该引用的对象内容可以被修改
  • final修饰方法,方法不可以重写,但是可以被子类访问,前提是方法不是private类型
  • final修饰类,类不可以被继承

static final

可修饰:成员变量、方法、内部类。

  • 成员变量:属于类的变量且只能赋值一次
  • 方法:属于类的方法且不可以被重写
  • 内部类:属于外部类,且不能被继承
原文地址:https://www.cnblogs.com/hunter-w/p/15625949.html