美文网首页
【Java面试题】10 abstract的method是否可同时

【Java面试题】10 abstract的method是否可同时

作者: 暖熊熊 | 来源:发表于2017-10-16 11:40 被阅读0次
    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是可以覆盖的,但是在调用时会调用编译时类型的方法,因为调用的是父类的方法,而父类的方法又是抽象的方法,又不能够调用,所以上的修饰符不能放在一起。

    相关文章

      网友评论

          本文标题:【Java面试题】10 abstract的method是否可同时

          本文链接:https://www.haomeiwen.com/subject/rpdkuxtx.html