abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?
来源:互联网 发布:淘宝专卖店都是正品吗 编辑:程序博客网 时间:2024/06/05 19:44
逛论坛看到这个java面试题,并且看到了一位比较好的讲解,转载过来作为知识积累,感谢前辈的分享:
转载地址:http://www.cnblogs.com/guweiwei/p/6600364.html
三个关键字说明
1、abstract是抽象的,指的是方法只有声明而没有实现,他的实现要放入声明该类的子类中实现。
2、static是静态的,是一种属于类而不属于对象的方法或者属性
3、synchronized 是同步,是一种相对线程的锁。
4、native 本地方法,这种方法和抽象方法及其类似,它也只有方法声明,没有方法实现,但是它与抽象方法不同的是,它把具体实现移交给了本地系统的函数库,而没有通过虚拟机,可以说是Java与其它语言通讯的一种机制。
5、那么我们就来谈谈这些关键字为什么不能和abstract混用。
首先abstract与static,声明static说明可以直接用类名调用该方法;
声明abstract说明需要子类重写该方法;
如果同时声明static和abstract,用类名调用一个抽象方法肯定不行。
synchronized 是同步,然而同步是需要有具体操作才能同步的,如果像abstract只有方法声明,那同步一些什么东西就会成为一个问题了,当然抽象方法在被子类继承以后,可以添加同步。
native,这个东西本身就和abstract冲突,他们都是方法的声明,只是一个吧方法实现移交给子类,另一个是移交给本地操作系统,如果同时出现,就相当于即把实现移交给子类,又把实现移交给本地操作系统,那到底谁来实现具体方法呢!
不能放在一起的修饰符:final和abstract,private和abstract,static和abstract,因为abstract修饰的方法是必须在其子类中实现(覆盖),才能以多态方式调用,以上修饰符在修饰方法时期子类都覆盖不了这个方法,final是不可以覆盖,private是不能够继承到子类,所以也就不能覆盖,static是可以覆盖的,但是在调用时会调用编译时类型的方法,因为调用的是父类的方法,而父类的方法又是抽象的方法,又不能够调用,所以上的修饰符不能放在一起。
- abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?
- abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?
- abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?
- abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?
- abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized
- abstract 的method 是否可同时是static,是否可同时是native,是否可同时是synchronized? 【基础】
- abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?
- abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?
- 面试题-abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?
- abstract的方法是否可同时是static,是否可同时是native,是否可同时是synchronized?
- ABSTRACT的方法是否可同时是STATIC,是否可同时是NATIVE,是否可同时是SYNCHRONIZED?
- abstract的方法是否可同时是static,是否可同时是native,是否可同时是synchronized?
- 黑马程序员_abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?
- java基础问题----abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized
- abstract 的 method是否可同时是 native的?
- 抽象的(abstract)方法 是否可同时是 静态的(static),是否可同时是 本地方法(native),是否可同时被 synchronized修饰?
- 抽象的(abstract)方法是否可同时是静态的(static),是否可同时是本地方法(native),是否可同时被synchronized修饰?
- abstract的method是否可同时是static
- PHP代码规范
- MFC--十进制与十六进制之间的转换
- 多线程简单理解
- 运动规划 (Motion Planning): MoveIt! 与 OMPL
- 程序员的一颗浮躁的心
- abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?
- Hystrix配置简单说明(官方文档简译)
- 使用ajaxFileUpload.js 上传了文件之后获取不到文件,但是回调了succcess函数。
- [笔记]LCA最近公共祖先---倍增在线算法
- 纯css的 表头固定的滚动表格
- Android Gradle配置Debug和release参数的方法
- 在CentOS6上安装 git1.9.1
- 极光推送自定义消息提示铃声
- 线程死锁