书上说,即使不写public,接口中的方法也是public的,那么为什么不允许把接口中的方法声明为protected或者默认呢?
假设接口中的方法允许被声明为默认,那么只有这个接口所在包内的,并且实现该接口的类,可以调用这个方法,
假设接口中的方法允许被声明为protected,那么只有这个接口所在包内的,并且实现该接口的类,以及这些类的子类可以调用这个接口中的方法
这两个假设从理论上也是说的通的啊,为什么实际不是这种情况呢?
假设接口中的方法允许被声明为默认,那么只有这个接口所在包内的,并且实现该接口的类,可以调用这个方法,
假设接口中的方法允许被声明为protected,那么只有这个接口所在包内的,并且实现该接口的类,以及这些类的子类可以调用这个接口中的方法
这两个假设从理论上也是说的通的啊,为什么实际不是这种情况呢?
接口都是对外开放的呀,当然要public你也这样理解:
接口是public的,所以只能对外公开。
但在项目中一般是public的,这跟编程开闭原则有关,编程到接口。
接口是一套公共的规范。
所以要public。
楼主很注意思考~~
public或者默认(default,package,friendly)
abstract(不管有没有写,其实都是abstarct,一般不写)可用于接口中方法的访问修饰符:
public(不管有没有写,其实都是public,一般都写)
abstract(不管有没有写,其实都是abstarct,一般不写)
所以他是public 的·
楼上的总结的很好,以后也要好好回帖总结·
你把方法弄成private 别的类不都哭了?
接口--只能够implements,不能extend
声明为protect,只有子类能访问。而同时,没有子类能够继承(extend)这个接口,矛盾。