为什么接口不能有受保护的方法
可能重复:
在接口中受保护
在Java中为什么我不能在接口中使用受保护的方法?
因为根据Java规范
受保护的访问(由关键字protected表示) – 同一个包中的任何类型可访问的字段或方法,以及任何包中的子类。
如果我必须使用该接口,我将实现它并覆盖方法。 因此,如果我要实现类可以访问这些方法的位置,那么可以在任何包中访问该方法。 那么在接口中将方法声明为受保护的危害是什么呢?
受保护的方法旨在与子类共享实现 。 就实现共享而言,接口没有任何提供,因为它们根本没有实现。 因此,接口上的所有方法都必须是公共的
对象的接口是该对象的一部分,该对象的一部分对该类的外部用户可见。 相反,受保护和私有方法(和字段)属于类内部。 它们封装在类中,类用户不应该知道它们。
因此,由于interface
用于定义接口(没有双关语),因此它们不包含受保护的方法是合理的。
在定义interface
时,人们不想考虑实现