abstract 的 method 是否可同时是 static,是否可同时是 native,是否可同时是 synchronized?

参考解答

都不能

修饰符的含义:

  • abstract:用来声明抽象方法,抽象方法没有方法体,必须由子类或实现类override,并有具体实例对象后,才能使用

  • static:用来声明静态方法,静态方法可以被类及其对象调用

  • native:用来声明本地方法,该方法的实现由非java 语言实现,比如c。一般用于java与外环境交互,或与操作系统交互

  • synchronized:用来实现线程同步,其实是synchronized(this) 或synchronized(class)的简化写法,暗示也必须有方法实现

不能一起使用的理由:

  • static声明方法表明这个方法在不生成类的实例时可直接被类调用,而abstract方法只能由实例对象调用,矛盾。

  • native 暗示这些方法是有实现体的,只不过这些实现体是非java的,但是abstract却显然的指明这些方法无实现体,矛盾

  • 从synchronized的功能也可以看出,用synchronized的前提是该方法也需要有实现,矛盾


results matching ""

    No results matching ""