在java中的方法重写中,两个方法是否可以具有不同的返回类型
我想问,在方法重写中,该方法是否可以有不同的返回类型 例如在java中的方法重写中,两个方法是否可以具有不同的返回类型,java,overriding,Java,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(); } } 什么
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以及它是否被称为覆盖。否不同的
返回
类型
不是方法覆盖,通过添加@Override
注释验证您不能执行此处指定的操作,因为您将得到一个编译器错误,指定您试图覆盖的方法与新定义冲突,使用不兼容的返回类型
为了重写方法,您需要具有相同的方法签名。您可以使用
@Override
注释来测试这一点。实际上,您可以以有限的方式进行测试。子类可以返回父类返回的类的子类
class A{
Object x(){
System.out.print("1");
}
}
class B extends A{
@Override
String x(){
System.out.print("2");
}
}
除此子类关系外,b/w返回类型,否。此代码不编译。这几乎总是一个迹象,表明你做的事情不正确。这是真的。应该注意的是,底层方法签名是相同的,因为根据定义,特定类的所有子类都是其继承类型,这就是为什么这样做的原因。