java类继承具有不同返回值的方法

时间:2014-02-12 11:41:47

标签: java

如果我在Java A和B中有两个类A extends B,如果我在A中有这个方法:

int getmax(){};

在B中我有这个方法:

INTEGER getmax(){};

B中的方法是否会被覆盖或重载? 在这种情况下是A?的B亚型

3 个答案:

答案 0 :(得分:4)

如果A.getmax()是私有的,您将获得两个独立的,无关的方法。

如果A.getmax()有任何其他访问修饰符(包括根本没有),则会出现编译错误,因为返回类型不兼容。

答案 1 :(得分:1)

“重写方法具有相同的名称,参数的数量和类型,以及它覆盖的方法的返回类型。重写方法也可以返回被重写方法返回的类型的子类型。此子类型称为协变返回类型。“ (http://docs.oracle.com/javase/tutorial/java/IandI/override.html

答案 2 :(得分:0)

您无法覆盖方法并更改其返回值。

此外,您可以声明具有相同名称但参数不同但方法名称相同,参数相同但返回值不同的方法。

在最后一种情况下,编译器将不知道使用哪种方法。