java中接口方法不管是否加了修饰符都是public。因此在实现的时候修饰范围不能缩小,只能是public。
比如:
public interface A{//定义一个接口
void show();//没有修饰符,默认修饰符是public
public void show1();//显示定义修饰符是public
}
public class A1 implements A{
public void show(){//不能缩小使用范围,原来定义的是public,现在只能是public
}
public void show1(){//不能缩小使用范围,原来定义的是public,现在只能是public
}
}
接口里面的本来就是属于全局的public类型的,,如果你在类里面实现的时候不写成public的话,那别人怎么去访问这个接口里面的内容呢。。也就是无法访问类里面的实现了。。那就写成接口就完全没有意义了马。。
接口中的方法只声明,不实现,字段都是final的static的(都是自动)。接口中的方法是abstract和public(这些都是自动)。当类来实现他的时候如果不添加public,那么它只有包访问权限,这样在方法被继承的过程中,他的访问权限就会被降低。java编译器中这样的情况是不允许的。
如果不是公有的,外面的如何去调用它,如果不去调用,那实现接口还有什么意义
接口的定义问题
接口中的数据和方法都是public类型的,当然在这里public可以省略。
继承及接口实现问题
实现的方法的定义范围只能不小于接口中方法定义的范围。
抽象类的继承也是如此。
说以只能是public。