私が持っているクラスAのように:Javaはオーバーライドの場合は戻り値の型を変更することはできませんなぜ
public class A {
int sayHello(int i,int j){
return i+j;
}
}
別のクラスBのように:
public class B extends A {
@Override
int sayHello(int i, int j) {
return i+j;
}
}
私は方法のsayHelloの戻り値の型を変更した場合クラスAのint(int、int)をintからfloatに変更すると、オーバーライドルールの戻り型も考慮されるため、オーバーライドおよびオーバーロードの有効な理由がないため、エラーが表示されます。
私はと混同しています。なぜ、javaはreturntypeを変更できないのですか? method()
リターンを何
class Parent {
int method() { return 1; }
}
class Child extends Parent {
float method() { return 1.0f; }
}
Parent p = new Child();
int myInt = p.method();
:なぜ型を返すためにも
多型を許可することは、検出困難なバグを作成する大きな理由です。次に、 'int blub = myInterfaceTypeのようなものです。getIntFromImplementedType() 'は安全ではありません。なぜなら、' int'だけでなく何も返すことができないからです。 – Tom