我们可以在接口中使用私有或受保护的成员变量吗?

时间:2015-03-25 11:37:22

标签: java

是否可以定义这样的界面:

public interface Test{
   public string name1;
   private String email;
   protected pass;
}

3 个答案:

答案 0 :(得分:5)

当您声明界面时 java编译器在接口方法之前添加公共和抽象关键字,在数据成员自动之前添加 public,static和final关键字



public interface Test{
   public string name1;
   private String email;
   protected pass;
}




因为你在私有和受保护的测试接口中声明了变量,它会给出错误。 如果您未指定修饰符,编译器将自动添加 public static final



public interface Test{
   public static final string name1;
   public static final  String email;
   public static final pass;
}




最重要的是

  1. 接口无法实例化,这就是变量的原因 的静态

  2. 接口用于实现100%的抽象 变量最终

  3. 接口为客户端提供了与之交互的方式 宾语。如果变量不公开,客户就不会 访问他们。 这就是变量公开

  4. 的原因

答案 1 :(得分:3)

在界面中拥有私人或受保护的成员在概念上没有意义。根据定义,某些东西是"私人"没有被曝光,因此,任何使用该界面的人都不会关心实施类是否有私人电子邮件字段。

只有公共成员对使用该界面的代码很重要。

答案 2 :(得分:1)

是java

  

只有公共,静态&允许进入决赛

如果要声明其字段,则应使用abstract类而不是interface