java程序接口报错超时偶发 java接口描述错误_java

子类重写父类方法时,方法的访问权限不能小于原访问权限,在接口中,方法的默认权限就是public,所以子类重写后只能是public

1.接口必须要具体类实现才有意义,所以必须是public。
2. 接口中的属性对所有实现类只有一份,所以是static。
3.要使实现类为了向上转型成功,所以必须是final的。
转载:

1、接口是一种约束和规范,是一种更加更高级的抽象类,抽象类的方法必须是公开的,因为要给人继承和使用啊,不用public,别人怎么看得到,所以在接口实现时,定义的方法修饰符必须是public;因此子类在实现接口重写方法时的修饰符必须是public。
2、另外再扩展一下,接口中没有变量(既然是约束和规范,怎么能够定义一个大家都可以改的东西呢?),只能是常量,接口中定义常量默认的修饰符为public
static final。

所以为什么会报错:Cannot reduce the visibility of the inherited method from
由于java类的继承关系中,只能扩大一个函数的作用域范围,不能缩小。

解决方法:在子类中保持父类的作用域范围,或者扩大范围。

父类中private的成员函数,可以在子类中重新声明为private, (default), protected, public
父类中(default)的成员函数,可以在子类中重新声明为(default), protected, public
父类中protected的成员函数,可以在子类中重新声明为protected, public
父类中public的成员函数,可以在子类中重新声明为public

不能缩小限定其实很好理解,试想一个类的函数已经对外声称具有某种功能了,作为子类按照面向对象的原则,也必须具有这种功能,不能此功能被限定没有了,所以函数的作用域只能扩大而不能缩小,否则是违背面向对象原则的。

java程序接口报错超时偶发 java接口描述错误_接口_02