当前位置:  开发笔记 > 编程语言 > 正文

为什么不允许在重写方法中使用参数类型(一个是原始的而另一个是包装器)的区别?

如何解决《为什么不允许在重写方法中使用参数类型(一个是原始的而另一个是包装器)的区别?》经验,为你挑选了0个好方法。

我最近开始使用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的包装,那为什么禁止这样的声明呢?

谢谢

推荐阅读
手机用户2402851155
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有