首页 > 试题广场 >

Java接口的修饰符可以为()

[单选题]
Java1.8之后,Java接口的修饰符可以为()
  • private
  • protected
  • final
  • abstract
接口是一种特殊的抽象类,先说明抽象类中的抽象方法,再说明接口

抽象类中的抽象方法(其前有 abstract1修饰)不能用 private、 static、 synchronized、na
tive访回修饰符修饰。原因如下:
1. private
抽象方法没有方法体,是用来被继承的,所以不能用 private修饰;
2.static
static修饰的方法可以通过类名来访间该方法(即该方法的方法体),抽象方法用sttic修饰没有意义;
3. synchronized
该关键字是为该方法加一个锁。而如果该关键字修饰的方法是 static方法。则使用的锁就是class变量的锁。如果是修饰类方法。则用this变量锁。
但是抽象类不能实例化对象,因为该方法不是在该抽象类中实现的。是在其子类实现的。所以,锁应该归其子类所有。所以,抽象方法也就不能用 synchronized关键字修饰了;
3. native
native这个东西本身就和 abstract冲突,他们都是方法的声明,只是一个把方法实现移交给子类,另一个是移交给本地操作系统。如果同时出现,就相当于即把实现移交给子类,又把实现移交给本地操作系统,那到底谁来实现具体方法呢

终于说到了接口!
接口是一种特殊的抽象类,接口中的方法全部是抽象方法(但其前的 abstract可以省略),所以抽象类中的抽象方法不能用的访间修饰符这里也不能用。同时额外说明一下protect关键词
4. protect
protected访同修饰符也不能使用,因为接口可以让所有的类去实现(非继承),不只是其子类,但是要用public去修饰。接口可以去继承一个已有的接口。
参考链接:http://www.360doc.com/content/16/0406/21/26211242_548419991.shtml

编辑于 2019-06-27 19:43:36 回复(9)
1、应该是 public default(不写) abstract  可以修饰, 证明
    1、写酱紫的源代码 ,使用反编译软件可以看到这个源代码编译之后的结果,我们知道,我们不写的修饰符,都会在编译阶段被加上,所以 default 和 abstract 可以修饰接口。
    2、写酱紫的源代码, 也使用反编译软件进行反编译
发表于 2019-09-09 09:17:07 回复(16)
我不是很理解为啥选d 接口不是一直用abstract修饰吗 只是全部都有这个关键字所以省略不写 为啥要jdk1.8之后
发表于 2020-01-18 22:59:12 回复(15)
这题有意思,接口被final修饰,就代表不能被继承
final interface aa{
    
}
JDK1.8提示Illegal modifier for the interface aa; only public & abstract are permitted
发表于 2019-05-30 14:58:22 回复(5)

接口中字段的修饰符:public static final

接口中方法的修饰符:public abstract

编辑于 2022-06-15 14:13:13 回复(0)
这题答案是有问题的。
接口的修饰符只有两种:public 、abstract
发表于 2019-07-08 10:55:23 回复(4)
这个题意应该是想表达1.8后接口增加的default和static修饰符。但是提干说对接口的修饰,那只能是public abstract了。提干应该改成接口里面的修饰符可以是哪些
编辑于 2019-12-27 08:39:33 回复(0)
接口可以被public、default、abstract修饰
发表于 2020-12-03 22:15:53 回复(0)
接口可以被public、default、abstract修饰
发表于 2020-06-17 11:14:05 回复(0)
接口默认是abstract的
发表于 2022-02-05 18:33:30 回复(0)
接口是一种特殊的抽象类,先说明抽象类中的抽象方法,再说明接口 抽象类中的抽象方法(其前有 abstract1修饰)不能用 private、 static、 synchronized、na tive访回修饰符修饰。原因如下: 1. private 抽象方法没有方法体,是用来被继承的,所以不能用 private修饰; 2.static static修饰的方法可以通过类名来访间该方法(即该方法的方法体),抽象方法用sttic修饰没有意义; 3. synchronized 该关键字是为该方法加一个锁。而如果该关键字修饰的方法是 static方法。则使用的锁就是class变量的锁。如果是修饰类方法。则用this变量锁。 但是抽象类不能实例化对象,因为该方法不是在该抽象类中实现的。是在其子类实现的。所以,锁应该归其子类所有。所以,抽象方法也就不能用 synchronized关键字修饰了; 3. native native这个东西本身就和 abstract冲突,他们都是方法的声明,只是一个把方法实现移交给子类,另一个是移交给本地操作系统。如果同时出现,就相当于即把实现移交给子类,又把实现移交给本地操作系统,那到底谁来实现具体方法呢 终于说到了接口! 接口是一种特殊的抽象类,接口中的方法全部是抽象方法(但其前的 abstract可以省略),所以抽象类中的抽象方法不能用的访间修饰符这里也不能用。同时额外说明一下protect关键词 4. protect protected访同修饰符也不能使用,因为接口可以让所有的类去实现(非继承),不只是其子类,但是要用public去修饰。接口可以去继承一个已有的接口。
发表于 2021-04-19 08:37:09 回复(0)

接口默认为public abstract,所以接口的修饰符可以为abstract。。。。。。。

发表于 2021-03-19 10:35:57 回复(0)
答案有问题。
编辑于 2019-09-06 09:58:16 回复(1)
JDK1.8以后,接口的修饰符可以是abstract。默认不写(编译器会自动加上)
接口的访问控制符和外部类一样:public、default。
interface xxx{}
public interface xxx{} 
abstract interface xx{}
public  abstract interface xxx{}

发表于 2022-04-29 13:24:47 回复(0)
jdk1.8 后, 接口可以使默认类型,就是default ,也就是public default abstract,通常default会省略,所以选择D选项
发表于 2022-04-22 10:14:04 回复(0)
1、接口的修饰符只能为(且默认为) public abstract。
2、接口的变量的修饰符只能为(且默认为) public static final。
3、接口的方法的修饰符 static(必须有方法体)。
发表于 2022-03-06 19:34:23 回复(0)
接口是一种特殊的抽象类
发表于 2021-12-06 17:37:30 回复(0)
类中定义的接口这些修饰符都能修饰
发表于 2021-04-26 19:47:34 回复(0)
题目问的是接口能有什么修饰符修饰,不是接口里的方法能用什么修饰符 public abstract interface xxx 是这样的
发表于 2021-04-01 08:39:59 回复(0)
接口本身就是抽象的,再用abstract修饰不知道这个题考察的点在哪
发表于 2020-08-25 10:38:10 回复(0)