抽象类和接口中抽象方法的不同规则

sar*_*nan 3 java

我们不能将接口中的抽象方法声明为protected和default(即使我们没有提到任何访问说明符(默认)编译器将其视为公共)

但是我们可以将抽象类中的抽象方法声明为protected和default.

为什么抽象类和接口有不同的规则?

Boz*_*zho 6

因为抽象类的抽象方法意味着是子类的钩子.另一方面,接口不关心实现细节 - 它们只与"外部世界" 签订合同.受保护的方法是实现细节.