题目:以下哪项是接口的正确定义?
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();}
结果:B、D
解释:
A:接口中的方法默认使用public abstract修饰,所以修饰符可以不写,如果写只能写这两个,由于这是抽象方法,所以后面不能有方法体,如果后面有方法体,非访问控制符只能是static或者default,可访问控制符默认是public,当然也可以不写可访问控制符,所以A错误
B:类的非访问控制符默认使用abstract修饰,可以不写,如果写只能写abstract,并且代码会提示abstract是多余的,但是不会报错,所以B正确
C:和A选项错误类似,都是方法后面有方法体,所以C错误
D:类的可访问控制符只能是public,当然默认值就是public可以不写,写上当然是正确的,所以D正确