默认情况下,界面中的所有方法是否具有公开可见性模式?方法界面中的可视性
回答
它们是'public'默认**和**'public'是唯一允许的值。 – 2011-03-24 11:39:56
+1参考JLS(通常有引用) – 2011-07-13 16:30:42
,但* rodion *(***本地/私人接口***本身)的**答案/“解决方法”**对于此处的重要内容非常重要: http://stackoverflow.com/a/5420362/1915920 – 2015-01-21 10:30:32
是的,一个接口的所有方法都是公开的,而且不能有任何其他访问修饰符(即默认的公共访问修饰符是唯一有效的访问修饰符)
是的,在接口的所有方法隐含地公开和抽象。
所有的接口方法public abstract
,所有的接口字段public static final
...
看到here。
+1:所有嵌套类都是'public static' – 2011-03-24 11:49:31
最好不要在接口中有任何状态(实例变量),尽管编译器会让你定义领域。接口应该定义能力,或者对象可以做什么。 – hotshot309 2012-12-04 19:31:38
只是在这里添加其他答案:所有方法都是公共的,但是,如果接口本身是封装本地的,那么有效所有的方法也是封装本地的。
因此,您可以通过将包本地接口扩展为公共包和本地包的方法来混合使用公共方法和包本地方法。
public interface P{
void iAmPublic();
}
interface L extends P{
void iAmPackageLocal();
}
这里L
实际上有一个公共和一个包本地方法。来自包外的客户只能看到iAmPublic()
,而来自包内的客户将看到两种方法。
以同样的方式,您可以在其他类中嵌套接口,以实现更紧密的方法可见性。
你的方法'iAmPackageLocal'不会被封装为私有的。请参阅http://stackoverflow.com/a/4801672/16209 – 2011-12-30 15:02:45
正如我在第一句话中所说的那样,这个方法*有效* package-private(这里注意单词**有效**),因为方法不存在而不需要声明接口,如同一篇文章中所述,它可以是封装私有的。由于您只能从软件包外部访问'P#iAmPublic()',但可以从软件包内部访问这两种方法,因此您可以获得所需的效果。假设你在程序包内部有一个带有public L getL();方法的API,然后尝试从包的外部调用'getL()。iAmPackageLocal()',你会得到一个编译器错误。 – rodion 2012-01-08 11:41:49
'公共类PseudoPrivate implements L' – 2012-01-10 13:30:09
- 1. iOS6中的界面方向
- 2. 访问界面路径的好方法
- 3. 用于单界面方法的GUI
- 4. UIView可以“忽略”界面方向吗?
- 5. 界面构建器中的视图失真。这怎么可能?
- 6. 如何检查界面属性的可见性?
- 7. Flex界面方法createAutomationIDPartWithRequiredProperties错误
- 8. Java界面 - 返回方法调用
- 9. 学习用户界面 - setContentPane()方法
- 10. 图形用户界面 - actionListener方法
- 11. Scala:从java界面重写方法
- 12. 用于远程可视化ASP.NET性能计数器的Web界面
- 13. 我可以省略我在Kotlin中不使用的界面方法吗?
- 14. Android界面网页视图
- 15. Apple Watch中的管理界面界面
- 16. 使用界面组合怪诞怪异的界面多态性
- 17. Java:界面中的可变参数
- 18. Java界面静态方法解决方法?
- 19. Delphi界面性能问题
- 20. 别名界面属性
- 21. 用于配置服务的可视界面的c#模式
- 22. 从Java界面中的相同方法返回不同类型
- 23. 如何在界面之外的目标c中声明方法?
- 24. 如何在界面中使用带有return语句的方法?
- 25. 在界面中提供不同的方法名称
- 26. 如何在界面中查找方法的索引?
- 27. 在Golang中进行多重界面转换的简明方法?
- 28. 如何将Android视图转换为具有特定方法的界面?
- 29. 无法在界面构建器中调整视图
- 30. 可视化SVM的超平面方程
如果您有时间,您可能需要通过一线团队阅读SCJP for java 6准备指南。那里有很多信息。接口方法默认是抽象的和公共的。 – zawhtut 2011-03-24 12:43:09