我最近开始使用JAVA编程并且有一个问题要问.假设我有一个SuperClass和一个SubClass,它扩展了SuperClass并尝试覆盖SuperClass中定义的方法,如下所示:
public class SuperClass{ public void method1(int val){ System.out.println("This is method in SuperClass.Val is:" + val); } }
我尝试在我的SubClass中扩展SuperClass并使用一个例外覆盖该方法,而不是int
在method1中声明的类型,我使用参数的类型Integer
,如下所示:
public class SubClass extends SuperClass{ @Override public void method1(Integer val){ ///compiler gives an error } }
编译器不允许使用SubClass方法的声明(我正在使用eclipse IDE).为什么会这样?整数本质上是int的包装,那为什么禁止这样的声明呢?
谢谢