博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java中 final、static、abstract区别与联系
阅读量:4919 次
发布时间:2019-06-11

本文共 1160 字,大约阅读时间需要 3 分钟。

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)

转载于:https://www.cnblogs.com/zhangjinru123/p/7219706.html

你可能感兴趣的文章
浏览器兼容性
查看>>
Java并发工具类(四):线程间交换数据的Exchanger
查看>>
求100内数的偶数和
查看>>
《从零开始搭建游戏服务器》MySQL安装配置
查看>>
Redis总结(三)Redis 的主从复制
查看>>
day_1:心理统计中常用的一些概念和统计符号
查看>>
彻底理解“递延所得税”
查看>>
1.GCC程序编译
查看>>
nyoj-248-buying feed
查看>>
函数的嵌套和作用链域
查看>>
合唱团
查看>>
MySQL 5.7.14 net start mysql 服务无法启动
查看>>
python重要资源
查看>>
SSRS 传多值参数问题
查看>>
linux快速进入全屏命令行模式
查看>>
colinux安装fedora
查看>>
Moya/RxSwift/ObjectMapper/Alamofire开发
查看>>
有关metric learning
查看>>
java udp 发送小数数字(较难)
查看>>
Caching Tutorial
查看>>