关键字abstract和static总结
1. abstract:意为抽象,在Java中可以修饰方法或者类
(1)修饰方法,这个方法是抽象方法,无方法体,这个类一定是抽象类,这个类的子类必须实现这个抽象方法;
(2)修饰类,这个类一定是抽象类,但是不一定有抽象方法;
2. static:意为静态的,在Java中修饰方法或者变量
2.1 按照是否静态对类成员变量分,有两种,被static修饰即叫静态变量/类变量;另一种是实例变量,两者区别:
(1)对于静态变量在内存中只有一个拷贝(节省内存),JVM只为分配一次内存,在加载的过程中完成静态变量的内存分配,通过类名调用(推荐),也可以使用对象名调用(不推荐);
(2)对于实例变量,每创建一个实例,就会为实例变量分配一次内存,实例变量在内存中有多个拷贝,互不影响(灵活);
(3)静态变量使用场景:在对象之间共享时,方便访问变量时;
2.2 static修饰的方法不能被重写; 静态方法独立于任何实例,所以必须得有方法体(必须实现);
(1)修饰的方法可以直接通过类名调用;被所有对象共享;
(2)静态只能访问静态,非静态既可以访问静态也可以访问非静态;
2.3 不加static修饰的成员是对象成员,为每一个对象所有,加static的成员为所有对象共有;
3. abstract 和 static 修饰方法:
(1) abstract无方法体,static有方法体,静态方法独立于任何实例,所以必须得有方法体(必须实现),不像是abstract(由子类实现);
(2) static修饰的方法优先于对象存在,所以修饰的方法里面不能有this,super关键字,this和super代表的对象此时并不存在;
(4) static修饰的方法通过类名(子类名)直接调用,通过类对象名(子类对象名)调用不报错但有警告;
4. abstract和static不能同时存在: abstract修饰的方法无方法体,不能随着类的加载而加载到方法区,static修饰的方法随着类的加载会被加载到类的方法区;
abstract还不能与final同时存在,因为final修饰的方法是最终方法,无法被重写;
abstract不能与private同时存在,因为private修饰的方法不可见,无法重写;
!!!个人(新手)整理,定有遗漏或存在错误,望指正,抱拳 老铁!
关键字abstract和static总结的更多相关文章
- 【转】Java关键字final、static使用总结
转自:http://lavasoft.blog.51cto.com/62575/18771/ Java关键字final.static使用总结 一.final 根据程序上下文环境, ...
- Java关键字final、static使用总结
Java关键字final.static使用总结 一.final 根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类.非抽象类成员方 ...
- 转!Java关键字final、static使用总结
Java关键字final.static使用总结 一.final 根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类.非抽象类成员方法和变量.你可 ...
- Java关键字final、static使用总结(转)
Java关键字final.static使用总结 一.final 根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类.非抽象类成员方 ...
- Java关键字final、static总结
对Java关键字Final和Static进行总结. 一.final 根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类.非抽象类成员方 ...
- java关键字-abstract
抽象:不具体,看不明白. 抽象类表象体现. 在不断抽取过程中,将共性内容中的方法声明抽取,但是方法不一样,没有抽取,这时抽取到的方法,并不具体,需要被指定关键字abstract所标示,声明为抽象方法. ...
- C语言中关键字auto、static、register、const、volatile、extern的作用
原文:C语言中关键字auto.static.register.const.volatile.extern的作用 关键字auto.static.register.const.volatile.exter ...
- Java基础(basis)-----关键字final和static的作用
1.关键字final final修饰类:这个类就不能被继承 final修饰方法:不能被重写 final修饰属性:此属性就是一个常量,一旦初始化后,不可再被赋值.习惯 ...
- Java关键字final、static使用总结(转)
原文链接:Java关键字final, static一些要点 1. final final类不能被继承,没有子类,final类中的方法默认是final的 final方法不能被子类的方法复盖,但可以被 ...
随机推荐
- Navicat注册机报错No all pattern found! file already patched
第一步:先把注册机放入安装目录. (这一步非常关键,先不要打开桌面上安装好的快捷方式!!) 第二步:如果之前下载过,把注册表清理干净 计算机\HKEY_CURRENT_USER\SOFTWARE\Pr ...
- 日常Bug排查-抛异常不回滚
日常Bug排查-抛异常不回滚 前言 日常Bug排查系列都是一些简单Bug排查,笔者将在这里介绍一些排查Bug的简单技巧,同时顺便积累素材_. Bug现场 最近有人反映java应用操作数据库的时候,抛异 ...
- XLearning - 深度学习调度平台
XLearning - 深度学习调度平台 软件简介 XLearning **** 是奇虎 360 开源的一款支持多种机器学习.深度学习框架调度系统.基于 Hadoop Yarn 完成了对TensorF ...
- TensorFlow文本情感分析实现
TensorFlow文本情感分析实现 前面介绍了如何将卷积网络应用于图像.本文将把相似的想法应用于文本. 文本和图像有什么共同之处?乍一看很少.但是,如果将句子或文档表示为矩阵,则该矩阵与其中每个单元 ...
- HarmonyOS技术特性
HarmonyOS技术特性 硬件互助,资源共享 多种设备之间能够实现硬件互助.资源共享,依赖的关键技术包括分布式软总线.分布式设备虚拟化.分布式数据管理.分布式任务调度等. 分布式软总线 分布式软总线 ...
- NVIDIA® TensorRT™ supports different data formats
NVIDIA TensorRT supports different data formats NVIDIATensorRT公司 支持不同的数据格式.需要考虑两个方面:数据类型和布局. ...
- ADO.NET的五大对象
ADO.NET是一种数据访问技术,使得应用程序可以连接到数据库存储,并以各种方式操作存储在其中的数据.该技术基于.NETFramework,与.NET Framework类库的其余部分高度集成. 其中 ...
- git操作分支的常用的命令
查看所有的分支: git branch -a 查看当前所在的分支: git branch 检出分支: ...
- day05对象和类
day06作业: 第一题:分析以下需求,并用代码实现 手机类Phone 属性: 品牌brand 价格price 行为: 打电话call() 发短信sendMessage() 玩游戏playGame() ...
- NOIP模拟测试2「排列 (搜索)·APIO划艇」
排序 内存限制:128 MiB 时间限制:1000 ms 标准输入输出 题目描述 输入格式 数据范围与提示 对于30%的数据,1<=N<=4: 对于全部的数据,1<=N< ...