为什么我们需要内部接口,尤其是使用私有访问修饰符?

时间:2019-06-13 17:17:03

标签: java access-modifiers

我是Java新手。最近,我读到了有关内部接口的信息,这让我感到非常困惑:首先,为什么要使用它们,其次,为什么它们也可以声明为私有的,而不是外部接口。我认为界面应该是公共的,以便所有人都可以使用。

2 个答案:

答案 0 :(得分:1)

内部接口或嵌套接口的主要目的是对相似的事物进行分组。考虑集合中的Map接口。它具有一个称为Entry的嵌套接口。没有映射就不能存在条目,因此从逻辑上讲将它们组合在一起是有意义的。另一方面,可能会有其他名为Entry的接口,这将导致名称空间冲突。因此,使用了嵌套接口。 为了回答另一个问题,在任何情况下使用访问修饰符都是为了防止未经授权的访问。将嵌套接口设为私有将阻止其他开发人员以不希望的方式实现它们。 希望这会有所帮助。

答案 1 :(得分:1)

在Java中使用内部接口的目的如下

  1. 解决接口使用通用名称时的命名空间问题
  2. 增加封装
  3. 通过将相关接口集中在一个位置来提高可读性。

可以将嵌套接口声明为public,private或protected。 这与顶级接口不同。必须将顶级接口声明为public或使用默认访问级别。

在另一个接口的主体中声明内部接口。

<html>
<head>
 <link href="css/style.css" rel="stylesheet">
 <link href="css/style2.css" rel="stylesheet">
 <script src="js/script.js"></script>
 <script src="js/scipt2.js"></script>
</head>
<body>
<----------HTML---------->
</body>
 <script src="js/secret.js"></script>
</html>

在另一个类的主体中声明内部接口。

public interface Items {
            interface MyList {
            }
        }

最后,我们可以按照以下步骤实施

 public class Items{
                public interface MyList {
                    void add(Items items);
                    String getItesmNames();
                }
        }

当嵌套接口在其封闭范围之外使用时,必须通过其所属的类或接口的名称进行限定。