为什么Interface不能有受保护的方法

时间:2012-01-28 14:33:13

标签: java

  

可能重复:
  Protected in Interfaces

在Java中为什么我不能在接口中使用受保护的方法?

根据Java规范

  

受保护的访问权限(由关键字protected表示) - 同一个包中的任何类型都可访问的字段或方法,以及任何包中的子类。

如果我必须使用该接口,我将实现它并覆盖这些方法。 因此,如果我要实现类可以访问这些方法的位置,那么可以在任何包中访问该方法。那么在接口中将方法声明为受保护的危害是什么呢?

2 个答案:

答案 0 :(得分:13)

受保护的方法旨在与子类共享实现。就实现共享而言,接口没有什么可提供的,因为它们根本没有实现。因此,接口上的所有方法都必须是公共的。

答案 1 :(得分:5)

对象的接口是该对象的一部分,该对象对该类的外部用户可见。 相反,受保护和私有方法(和字段)属于类内部。它们封装在类中,类用户不应该知道它们。

因此,由于interface用于定义接口(没有双关语),因此它们不包含受保护的方法是合理的。

在定义interface

时,我们不想考虑实施