内部接口为什么是默认public static修饰?

AnonymousMonkey 2017-08-25 12:02:49
希望举例说明,谢谢~~
...全文
877 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
你好sun悟空 2017-09-19
  • 打赏
  • 举报
回复
内部接口不静态,你在别的地方咋个调用嘛
幽饮烛 2017-09-14
  • 打赏
  • 举报
回复
所有接口都是静态的。 可以是 公共的、私有的、保护的、default的。 普通接口、内部接口默认都是 default 的,也就是包内可用的。 只有用 public 修饰的接口才是 public 的。
  • 打赏
  • 举报
回复 4
通常内部类是通过这种方式去用的

class HH{
	 class Dg{
		
	}
}
class KK extends HH.Dg{

	KK(HH h){
		h.super();
	}
	
}
这是为了在去使用内部类之前去获得外部类实例,这是因为内部类相当于外部类的一个成员属性,而非静态成员属性只能通过外部类实例去调用,因为静态就表示他在外部类实例之前就可以被使用了,所以加了静态就不用去写上面的构造了 直接继承或实现 OutClass.InnerClass就行了。 因为接口的存在就是为了提供规范让别人去实现,所以系统就给内部接口加上public static
Kar1o 2017-09-14
  • 打赏
  • 举报
回复 2
引用 9 楼 qq_33140971 的回复:
通常内部类是通过这种方式去用的

class HH{
	 class Dg{
		
	}
}
class KK extends HH.Dg{

	KK(HH h){
		h.super();
	}
	
}
这是为了在去使用内部类之前去获得外部类实例,这是因为内部类相当于外部类的一个成员属性,而非静态成员属性只能通过外部类实例去调用,因为静态就表示他在外部类实例之前就可以被使用了,所以加了静态就不用去写上面的构造了 直接继承或实现 OutClass.InnerClass就行了。 因为接口的存在就是为了提供规范让别人去实现,所以系统就给内部接口加上public static
此为正解,赞一个
AnonymousMonkey 2017-09-13
  • 打赏
  • 举报
回复
引用 7 楼 qq_33291243 的回复:
接口都是抽象类和抽象方法,需要被静态公用
我说的是内部接口
qq_33291243 2017-09-11
  • 打赏
  • 举报
回复
接口都是抽象类和抽象方法,需要被静态公用
Timor_D 2017-09-11
  • 打赏
  • 举报
回复
如果你是初学者或者不是很高级的工程师,我觉得你不要去太深究这个问题,把它当一个规则记住就可以了,这个完全没必要理解的很透彻
AnonymousMonkey 2017-09-01
  • 打赏
  • 举报
回复
引用 1 楼 qq_27762917 的回复:
因为接口是不能实例化的,所以只有当它是静态的才有意义
不太明白,用static修饰接口就不能实例化了?
ImAmelie 2017-08-25
  • 打赏
  • 举报
回复
内部接口 默认是static修饰 接口里的字段才是public static final修饰
自由自在_Yu 2017-08-25
  • 打赏
  • 举报
回复
没有规定一定是public吧?
soton_dolphin 2017-08-25
  • 打赏
  • 举报
回复
public static 修饰的接口不是内部接口, 只是一个嵌套接口
Freefish1994 2017-08-25
  • 打赏
  • 举报
回复
因为接口是不能实例化的,所以只有当它是静态的才有意义

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧