interface A { void print() {};}
时间: 2023-09-03 12:13:16 浏览: 68
在Java中,接口中的方法默认是抽象的,不包含方法体。因此,该代码是错误的。如果需要在接口中提供方法实现,可以在Java 8及以上版本中使用 `default` 关键字,如下所示:
```
interface A {
default void print() {
System.out.println("This is a default implementation.");
}
}
```
上面的代码中,`print()` 方法被定义为默认方法,包含了方法体,可以直接在接口中提供方法的默认实现。前提是在JDK8及以上版本才支持这种方式。
相关问题
40、以下哪个接口的定义是正确的?( D ) A、 interface B { void print() { } ;} B、 abstract interface B { void print() ;} C、 abstract interface B extends A1,A2 //A1、A2为已定义的接口 { abstract void print(){ };} D、 interface B { void print();}
选项D的接口定义是正确的。在Java中,接口是一种特殊的抽象类,它定义了一组方法的签名,但没有实现。接口中的方法都是抽象的,不能有实现代码。接口的定义方式是使用关键字interface,后面跟着接口名称和方法签名。例如,选项D中的接口定义了一个名为B的接口,该接口有一个名为print的方法,没有方法体。选项A中的接口定义了一个名为B的抽象类,该类有一个名为print的方法,并且有方法体,这是不合法的。选项B中的接口定义了一个名为B的抽象类,该类有一个名为print的抽象方法,没有方法体,但是关键字abstract在接口定义中是多余的。选项C中的接口定义了一个名为B的抽象接口,该接口继承了A1和A2两个接口,并且有一个名为print的抽象方法,但是方法体中的分号是多余的。
abstract interface A extends I1,I2 {abstract void print() {};}
Java中不允许在接口中使用 `abstract` 修饰符,因为接口中的所有方法默认都是抽象方法,不需要再使用 `abstract` 关键字进行修饰。因此,该代码是错误的。另外,接口中的方法不能有方法体,因此也不能像上面的代码一样为方法提供具体的实现。如果需要提供默认的方法实现,可以在Java 8及以上版本中使用 `default` 关键字。
阅读全文