java接口中方法的默认访问修饰符为public
如果一个接口Cup有个方法use(),有个类SmallCup实现接口Cup,则在类SmallCup中正确的是? ( )
A、void use() { …}
B、protected void use() { …}
C、public void use() { …}
D、以上语句都可以用在类SmallCup中
正确答案: C
子类重写父类方法时,方法的访问权限不能小于原访问权限,在接口中,方法的默认权限就是public,所以子类重写后只能是public
接口,比抽象类还要抽象的类:
- 接口中的方法会被隐式的指定为 public abstract (只能是 public abstract,其他修饰符都会报错)。
- 接口中的变量会被隐式的指定为 public static final 变量(并且只能是 public,用 private 修饰会报编译错误。)
- 接口中的方法是不能在接口中实现的,只能由实现接口的类来实现接口中的方法。
注:
接口是隐式抽象的,当声明一个接口的时候,不必使用 abstract 关键字。
接口中每一个方法也是隐式抽象的,声明时同样不需要 abstract 关键字。
接口中的方法都是公有的( public ) !!! 不是 default 啦