两种方法在java中的方法覆盖中有不同的返回类型

时间:2014-08-08 18:07:25

标签: java method-overriding

我想问一下,在方法覆盖中,该方法可以有不同的返回类型..

例如。

class A{
    int x(){
       System.out.print("1");
    }
}

class B extends A{
    void x(){
       System.out.print("2");
    }
}

class C{
    public static void main(){
       A a = new B();
       a.x();
    }
}

什么是o / p以及它是否被称为覆盖。

3 个答案:

答案 0 :(得分:1)

您无法执行此处指定的操作,因为您将收到编译器错误,指出您尝试使用不兼容的返回类型覆盖与新定义冲突的方法。

要覆盖方法,您需要具有相同的方法签名。您可以使用@Override注释来测试它。

答案 1 :(得分:1)

实际上,你可以以有限的方式分类。子类可能会返回父级返回的子类

 class A{
  Object x(){
   System.out.print("1");
   }
  }

class B extends A{
 @Override
 String x(){
   System.out.print("2");
 }
}

除了这个子类关系,还有返回类型,编号

答案 2 :(得分:0)

不同的return type不是方法覆盖,请通过添加@Override注释进行验证