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总结的更多相关文章

  1. 【转】Java关键字final、static使用总结

    转自:http://lavasoft.blog.51cto.com/62575/18771/   Java关键字final.static使用总结   一.final        根据程序上下文环境, ...

  2. Java关键字final、static使用总结

    Java关键字final.static使用总结   一.final        根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类.非抽象类成员方 ...

  3. 转!Java关键字final、static使用总结

    Java关键字final.static使用总结   一.final 根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类.非抽象类成员方法和变量.你可 ...

  4. Java关键字final、static使用总结(转)

    Java关键字final.static使用总结   一.final        根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类.非抽象类成员方 ...

  5. Java关键字final、static总结

    对Java关键字Final和Static进行总结. 一.final        根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类.非抽象类成员方 ...

  6. java关键字-abstract

    抽象:不具体,看不明白. 抽象类表象体现. 在不断抽取过程中,将共性内容中的方法声明抽取,但是方法不一样,没有抽取,这时抽取到的方法,并不具体,需要被指定关键字abstract所标示,声明为抽象方法. ...

  7. C语言中关键字auto、static、register、const、volatile、extern的作用

    原文:C语言中关键字auto.static.register.const.volatile.extern的作用 关键字auto.static.register.const.volatile.exter ...

  8. Java基础(basis)-----关键字final和static的作用

       1.关键字final      final修饰类:这个类就不能被继承      final修饰方法:不能被重写      final修饰属性:此属性就是一个常量,一旦初始化后,不可再被赋值.习惯 ...

  9. Java关键字final、static使用总结(转)

    原文链接:Java关键字final, static一些要点 1. final   final类不能被继承,没有子类,final类中的方法默认是final的 final方法不能被子类的方法复盖,但可以被 ...

随机推荐

  1. H.264/H265码流解析

    H.264/H265码流解析 一.H.264码流解析 一个原始的H.264 NALU 单元常由 [StartCode] [NALU Header] [NALU Payload] 三部分组成 一个原始的 ...

  2. Paddle Lite端侧部署

    Paddle Lite端侧部署 端侧推理引擎的由来 随着深度学习的快速发展.特别是小型网络模型的不断成熟,原本应用到云端的深度学习推理,就可以放到终端上来做,比如手机.手表.摄像头.传感器.音响,也就 ...

  3. Postman之newman的安装

    一.newman简介:newman是为Postman而生,专门用来运行Postman编写好的脚本:使用newman,你可以很方便的用命令行来执行postman collections. 二.newma ...

  4. MapReduce —— MapTask阶段源码分析(Input环节)

    不得不说阅读源码的过程,极其痛苦 .Dream Car 镇楼 ~ ! 虽说整个MapReduce过程也就只有Map阶段和Reduce阶段,但是仔细想想,在Map阶段要做哪些事情?这一阶段具体应该包含数 ...

  5. 仅用CSS几步实现赛博朋克2077风格视觉效果

    背景 文章开始之前先简单了解下什么是 赛博朋克,以及什么是 赛博朋克2077. 赛博朋克(Cyberpunk)是"控制论.神经机械学"与"朋克"的结合词,背景大 ...

  6. 即时性能分析工具 Pyroscope

    当网站上线后,流量增加或短暂功能故障,都会造成使用者体验相当不好,而这时该怎么快速找到性能的瓶颈呢?通常 CPU 达到 100% 时,有时候也很难复制及找出关键问题点. 本篇文章,我们会介绍一套工具叫 ...

  7. VNC 相关

    vncserver启动报错root A VNC server is already running as :1 [root@42 ~]# service vncserver startStarting ...

  8. 为什么Mongodb索引用B树,而Mysql用B+树?

    引言 好久没写文章了,今天回来重操旧业. 今天讲的这个主题,是<面试官:谈谈你对mysql索引的认识>,里头提到的一个坑. 也就是说,如果面试官问的是,为什么Mysql中Innodb的索引 ...

  9. 一起来踩踩 Spring 中这个循环依赖的坑

    1. 前言 2. 典型场景 3. 什么是依赖 4. 什么是依赖调解 5. 为什么要依赖注入 6. Spring的依赖注入模型 7. 非典型问题 参考资料 1. 前言 这两天工作遇到了一个挺有意思的Sp ...

  10. 『言善信』Fiddler工具 — 17、Fiddler常用插件(Willow)

    目录 1.Traific Difer插件 2.PDF View插件 3.JavaScript Formatter插件 4.CertMaker for iOS and Android插件 5.Synta ...