首页 > 试题广场 >

java8中,忽略内部接口的情况,不能用来修饰interfa

[不定项选择题]
java8中,忽略内部接口的情况,不能用来修饰interface里的方法的有( )
  • private
  • public
  • protected
  • static
对于Static关键字不能用于修饰接口的解释:
每个java文件对应一个公共类,该java程序被编译,类加载后才会加载静态成员变量。所以不能用static修饰共类和公共接口,因为类还没加载,无法使用static关键字。
因此,内部类和内部接口都可以用static关键字,因为外部的公共类已经被加载了。

接口只能由public和默认来修饰;
普通类也只能由public,默认,private,protected,final,abstract修饰,不可以用static修饰
static一般用来修饰内部类,成员变量,成员方法

编辑于 2017-04-03 14:54:16 回复(1)
更多回答

选a,c,d,only public & abstract are permitted

你既然定义了interface(接口),那肯定是要其它的类去实现它的, 不然你定义它干吗,所以不能用protected去修饰, 而要用public去修饰。

接口可以去继承一个已有的接口。

接口只能被public和默认修饰符修饰,protected也不行所以除了public其他的都要选

编辑于 2017-05-03 11:35:33 回复(15)
eclipse中测试了一下,提示的是:Illegal modifier for the interface method a; only public & abstract are permitted
发表于 2015-07-09 19:38:53 回复(3)
修饰借口,只能是public ,abstract。private不能修饰interface大家可能比较好理解,protect同样也不能修饰interface。根据作者的意思《java编程思想》interface是一种极度抽象的类。如果你用protect去修饰它。protected权限范围是当前包内,和继承该类的包外对象。仔细想想,protected  和public 是不是就一样了。  public interface A  protected interface A   想实现interface的用implements。所以public protected就效果一样    就没必要protected
发表于 2015-11-05 22:24:22 回复(3)
//JDK 1.8以后,方法可以有方法体,要加上default
//1.8以后可以有静态方法
public interface Test{
    int a = 10;
    void test(int i);
    default  void  method(){
        System.out.println("default函数");
    }
   static void d(){
       System.out.println("static函数");
    }
}
其他方法默认的是 public abstract
发表于 2017-08-14 09:27:54 回复(0)
可修饰的有public, abstract, static, default
发表于 2017-08-24 17:47:36 回复(0)

1.接口里面允许有什么东西

JDK1.7的时候,接口里面就只能有静态常量(public static final)和抽象方法(public abstract )

由于子类实现父类的时候不能缩小访问权限,使用实现接口中的方法时,访问权限也是public

JDK1.8的时候,多了default方法和static方法

1.默认方法 格式:public default 返回值 方法名(){} 2.静态方法 格式:public static 返回值 方法名(){}

JDK9

这次更新也JDK8遗留下的问题

当我们在一个接口里写多个默认方法或者静态方法的时候,可能会遇到 程序重复的问题。我们可以把这些重复的程序提取出来,创建一个新的方法, 用private进行修饰,这样就创造了一个只有接口可以调用的私有方法。

私有方法格式,与上面的对应 1.默认私有方法:当多个默认方法程序重复的时候使用 格式:private 返回值 方法名(){} 2.静态私有方法:当多个静态方法程序重复的时候使用 格式:private static 返回值 方法名(){}

发表于 2020-01-13 15:55:27 回复(0)
jdk1.8开始,接口中可以定义静态方法了。
发表于 2017-06-09 14:57:08 回复(0)
题目说的是接口中的方法不能被什么修饰,接口确实只能被abstract和public来修饰,但是接口中的方法是可以用public, abstract, default, static and strictfp修饰的。其中用static修饰方法时,需要带上方法体
发表于 2017-05-31 15:07:29 回复(0)
这题答案有问题,亲测以下代码
package example;

public class Example {

    protected static interface A {
    }

    private interface B {

    }

}
所以答案是 没有答案
编辑于 2015-05-06 11:22:17 回复(11)
jdk8新特性,在接口中可以定义static方法和default方法,对于实现多个接口的类来说由于静态方法是类级别的,可以直接使用接口名.方法的形式调用。而对于默认不同接口中相同的默认方法子类必须对其进行覆盖,否则报错。
发表于 2019-04-06 16:30:51 回复(0)
AKG头像 AKG
java8之前,接口中的方法只能用public和default修饰。java8开始定义一个接口时,在满足特定的前提下,可以有方法的具体实现。这样一个接口中可以有属性,可以有抽象方法,也可以有具体的方法。但只能定义default和static类型的方法。
发表于 2018-01-22 14:51:55 回复(0)
java1.8可以有default和 static ,并且也也可以有实现方法。这道题OUT
发表于 2017-04-19 10:37:14 回复(0)
1.以下用public 和 protected 和默认(缺省:即不写修饰符)来做测试
public可以!


2.protected不行
报错:Illegal modifier for the interface method save; only public & abstract are permitted
中文译文:保存接口方法的非法修饰符;只允许公开和抽象
3.那我不写修饰符,竟然通过了(这时我又认为修饰符是defalut的吗?所以又做了下面测试)


4.结果我用default也是报错的!
报错:Syntax error on token "default", delete this token
中文译文:令牌“默认”语法错误,删除此令牌

5.那么我们用abstract修饰Interface更不用说:肯定通过的
6.总结:只有public和abstract才有资格修饰傲娇的interface
发表于 2017-01-12 20:15:25 回复(3)
考察 Java 接口相关基础知识。
对于面向对象编程来说,抽象是它的四大特征之一。在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。接口和抽象类为我们提供了一种将接口与实现分离的更加结构化的方法。并且,抽象类和接口的存在就是为了被继承和实现的,所以它们的只能被 public 或 默认修饰符 修饰。总的来说,抽象类是一种模板,而接口是一种契约.

更多关于 “Java 接口与抽象类 ” 的更详细的阐述,请查看我的博文 “http://blog.csdn.net/justloveyou_/article/details/52944564”。欢迎留言,欢迎指教!
编辑于 2016-12-11 11:28:14 回复(0)
明明成员变量可以用static修饰啊!!!虽然不写也是默认的final static,但还是可以写啊~~~
发表于 2015-09-05 09:24:00 回复(1)
java 1.8开始支持接口中定义静态方法,发了一波纠错终于得到回应,题目加了条件java8中。。。。。

发表于 2017-05-13 10:59:23 回复(3)
接口中的方法必须用public和abstract修饰,接口中的变量只能用public static final修饰,故应该是A C
发表于 2017-04-01 18:37:08 回复(0)
Java8的接口方法可以有如下定义
only public, abstract, default, static and strictfp are permitted
发表于 2017-05-25 21:32:42 回复(1)
在 java 1.8.0_91 中
发表于 2017-04-10 20:05:56 回复(9)