这个问题要从实际的逻辑角度去看的,首先要了解abstract,static,synchronized,native这些关键字干什么用的。

  1. abstract是抽象的,指的是方法只有声明而没有实现,他的实现要放入声明该类的子类中实现。
  2. static是静态的,是一种属于类而不属于对象的方法或者属性,而我们知道,类其实也是一个对象,他是在class文件加载到虚拟机以后就会产生的对象,通常来说它是单利的,就是整个虚拟机中只有一个这样的类对象(当然,如果用新的类加载器也会生成新的类的对象)。
  3. synchronized 是同步,是一种相对线程的锁。
  4. native 本地方法,这种方法和抽象方法及其类似,它也只有方法声明,没有方法实现,但是它与抽象方法不同的是,它把具体实现移交给了本地系统的函数库,而没有通过虚拟机,可以说是java与其它语言通讯的一种机制。

那么我们就来谈谈这些关键字为什么不能和abstract混用。

首先abstract与static,其实一看他们的作用和属性就很容易辨别,abstract是没有实现的,而static一定要有实现,因为abstract的类不能生产对象,但是static是属于类,而类已经是一个存在的对象,这两个关键字在这上面有一个关键的矛盾点。 synchronized 是同步,然而同步是需要有具体操作才能同步的,如果像abstract只有方法声明,那同步一些什么东西就会成为一个问题了,当然抽象方法在被子类继承以后,可以添加同步。 native,这个东西本身就和abstract冲突,他们都是方法的声明,只是一个吧方法实现移交给子类,另一个是移交给本地操作系统。如果同时出现,就相当于即把实现移交给子类,又把实现移交给本地操作系统,那到底谁来实现具体方法呢?

抽象方法能否同时是native或者static或synchronized的?相关推荐

  1. react native在static中使用this方法

    方法一 首先需要在componentDidMount(){}中动态的添加点击事件 属性给params componentDidMount(){this.props.navigation.setPara ...

  2. Java面试准备(一)——Java基础

    Java基础 一.基础概念与常识 1. Java和C++对比 2. Java语言有哪些特点 3. 什么是字节码?采用字节码的好处? 4. JVM,JRE和JDK 5. Oracle JDK和OpenJ ...

  3. Java基础教程带你走进java的世界

    Java教程 Java简介 什么是Java? Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称. Java分为三个体系: Java ...

  4. Java中的transient关键字

    前言 说实话学了一段时间java的朋友对于transient这个关键字依旧很陌生基本没怎么用过,但是transient关键字在java中却起到了不可或缺的地位!如果要说讲到,我觉得最可能出现的地方是I ...

  5. Java常见知识点汇总

    Java常见知识点汇总 基础概念与常识 1.Java 语言有哪些特点? 2.JVM vs JDK vs JRE 3.什么是字节码?采用字节码的好处是什么? 4.为什么不全部使用 AOT 呢? 5.为什 ...

  6. Java关键字及其作用

    一. 关键字总览: 访问控制 private protected public             类,方法和变量修饰符 abstract class extends final implemen ...

  7. java class 关键字_java关键字及其作用

    一. 关键字总览: 访问控制 private protected public 类,方法和变量修饰符 abstract class extends final implements interface ...

  8. Java语言基本元素

    Java语言基本元素 1.标识符 1.1标识符概念 程序员对程序中的元素加以命名时使用的命名记号称为标识符(identifier) 标识符包括:类名.变量名.常量名.方法名 1.2Java标识符命名规 ...

  9. java关键字有什么用_JAVA中关键字有什么用

    展开全部 Java关键e68a84e8a2ad3231313335323631343130323136353331333363356566字及其作用 一. 关键字总览: 访问控制 private pr ...

最新文章

  1. Python+OpenCV实现AI人脸识别身份认证系统(3)—训练人脸识别模型
  2. 在FCKeditor 2.6中添加插入视频和音频功能
  3. HTML(5)+CSS(3)--那些不知道但重要的知识!
  4. Nmap扫描教程之网络基础服务DHCP服务类
  5. vue 循环 递归组件_Vue一个案例引发的递归组件的使用
  6. ACM入门之【差分】
  7. summary+plan
  8. 【Python】字典(Dictionary) items()方法
  9. 如何快速的学习html5,高效快速学习HTML5的技巧
  10. [转载]使用CPU时间戳进行高精度计时
  11. 【英语学习】【Level 07】U07 Stories of my Life L5 I shouldn't have said that
  12. Linux查询命令man手册各章节解释
  13. 区块链中的密码学(五)-零知识证明简述
  14. 荣耀play3 鸿蒙,荣耀play系列跳过2直接上3代,999元的配置还能愉快play吗?
  15. ecshop添加商品选择品牌时如何按拼音排序
  16. linux红帽认证考试费,红帽rhce认证考试费用是多少?
  17. docker run 报错 Bind for 0.0.0.0:80 failed: port is already allocated.解决方案
  18. 这里除了安全,什么都不会发生!Docker镜像P2P加速之路
  19. 用c语言求积分程序,菜鸟学C语言(五)之求定积分
  20. python播放url音频_从URL获取音频并播放i

热门文章

  1. UTF-8、Unicode、GBK 编码中英文占用的字节数
  2. 智慧物流:RFID智能仓储管理解决方案-新导智能
  3. 如何将web项目部署到远程桌面,通过远程地址访问web项目
  4. 美国官方对 Web3有什么看法?
  5. Linux下视频服务器的实现(流媒体Helix Server)
  6. 无线通信:Wi-Fi 基本知识
  7. 计算机毕业设计(6)python毕设作品之学校校园网站系统
  8. 在Windows上如何创建批处理.bat文件
  9. ChatGPT是否会取代程序员:一场关于职业未来的讨论
  10. MyEclipse10 + Axis2 开发webservice