Java中 final、static、abstract区别与联系

1、static修饰符

  • static作用于代码块:称作静态代码块(可以初始化static field,不能初始化非static field);
  • static作用于methods:
  • static方法只能访问static 方法,不能访问非static 方法
  • static 方法只能访问static field, 不能访问非static field
  • 非static 方法可以访问static fields 和 static methods
  • static method的两种访问方式oject.method和class.method, 非static method只有object.method一种访问方式
  • static method中不支持this和super
  • static不可以作为局部变量(局部变量包括:函数级局部变量和块级局部变量)

2、final修饰符

  • final类不能被继承(不能有abstract final class)(final类内的method自动为final,但不包括属性)
  • final方法可以被继承但不能被override(重写) 不能有abstract final method
  • final属性不能被重新赋值(可以被继承,但不可以修改),
  • 定义时可以初始化,也可以不初始化,选择在语句块中初始化或者构造函数中初始化(最晚要在构造函数中初始化,只能初始化一次)
  • final属性只能人为赋值一次,继承与父类的final属性不能被修改
  • final可以修饰局部变量,表示局部常量(方法级局部变量(形参及局部变量,方法体级局部变量)或块级局部变量)

3、abstract修饰符:

  • abstract类不能实例化对象
  • abstract类可以不包含abstract方法,但是只要有一个abstract方法那么该类必须为abstract类
  • abstract方法没有方法体,需要被override
  • abstract类的子类要么实现其父类全部的abstract method,要么也是一个abstract类
  • abstract不能修饰属性
  • abstract不能修饰局部变量(方法级局部变量(形参级局部变量,方法体级局部变量)或块级局部变量)

4、final、static、abstract之间的关系:

  • final、abstract不能共存(无论在类、方法、属性、局部变量上都不能共存)
  • static、abstract不能共存(无论在类、方法、属性、局部变量上都不能共存)
  • 可以出现final static field(该类成员属性不能被修改)
  • 可以出现final static method(该类成员方法不能被override)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值