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

可能重复:
在接口中受保护

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

因为根据Java规范

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

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

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

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

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

在定义interface时,人们不想考虑实现