Java基础知识强化17:JAVA不可以将所覆盖的方法的访问权限变得比父类的小

首先我们看一下下面的代码如下:

1   interface  I  {  void go();  }
2   abstract class A implements I { }
3 
4  class C extends A  {
5     void go(){ System.out.println("I love you!");  }
6   }

在线编译出现如下报错:

分析:

出现这个错误的原因是

接口的方法默认修饰符是:public abstract

这里实现的go( )方法的修饰符是default,访问权限降低了,这是不容许的。

因为JAVA不可以将所覆盖的方法的访问权限变得比父类的小。

所以我们实现go()方法的时候,访问权限改成public就可以了,如下:

原文地址:https://www.cnblogs.com/hebao0514/p/4787439.html