abstract、final、static关键字

Java中关键字很多,其中用于类、函数、变量修饰符的关键字就是abstract、final、static,下面详细解释一下这三个关键字

abstract 关键字

  • abstract可以修饰类和方法,不能修饰变量,所修饰的类叫做抽象类,修饰的方法叫抽象方法
  • 抽象类中可以没有抽象方法,但该类已经是抽象类了,无法被实例化,只能由他的子类继承
  • 包含抽象方法的类一定是抽象类,抽象方法不能实现,只能由抽象类的子类继承重写抽象方法
  • 抽象方法没有主体,不能直接调用抽象方法
  • 抽象方法不能用 private 修饰,因为抽象方法必须被重写,也就意味着一定能被子类访问,而 private 修饰符只能访问本类成员
  • 抽象方法不能用 static 修饰,被 static 修饰,是类的成员,可直接通过类名调用方法,而抽象方法没有实体,毫无意义
  • abstract 和 final 不能共存,abstract 是要子类继承抽象类重写抽象方法,而 final 修饰的类不能被继承

final关键字

final 修饰变量

  • final 修饰变量(基本数据类型或者引用数据类型)表示该变量是一个常量,在以后的使用中不能改变。修饰基本数据类型的变量,必须赋予初值且不能被改变,修饰引用数据类型时,该引用变量不能指向其他变量
  • final 修饰变量,未给变量赋值,是错误的,系统不会默认赋 0 或者 null

final 修饰方法

  • final 修饰方法,代表这个方法不能被子类方法重写。若方法功能已经完整了,子类中不需要改变,可用 final 关键字, final 方法比非 final 方法快,因为在编译的时候已经静态绑定了,非 final 方法在运行时进行动态绑定

final 修饰类

  • final 修饰类,表明该类不能被继承

!!!总而言之,被 final 修饰的不能被修改

static 关键字

static 修饰变量

  • 被 static 修饰的变量叫静态变量,也叫做类变量,访问方式类名.变量名,说明这个变量是属于这个类的,不是对象的

static 修饰方法

  • 被 static 修饰的方法称为静态方法,该方法属于类,不属于对象
  • 类可以直接调用静态方法,不用创建类的实例
  • 静态方法可以访问静态变量,并修改静态变量的值,不能访问非静态成员或调用非静态方法

static 修饰代码块

  • 被 static 修饰的代码块叫静态代码块,静态代码块只会被执行一次,优先执行,静态代码块 —>构造代码块—>构造方法体
  • 静态代码块是随着类的加载而加载,而构造代码块和构造方法都是随着对象的创建加载

static 修饰类

  • static 修饰类只能修饰内部类
发布了32 篇原创文章 · 获赞 6 · 访问量 805

猜你喜欢

转载自blog.csdn.net/Beverly_/article/details/104536380