Czy podczas tworzenia przedefiniowanych metod, musi być zapewniony jednakowy typ zwracanej wartości?
Czy podczas tworzenia przedefiniowanych metod, musi być zapewniony jednakowy typ zwracanej wartości?
W wersji języka 5.0 możliwe już jest tworzenie przedefiniowanych metod różniących się jedynie typem zwracanej wartości, o ile typ zwracany wywodzi się z typu zwracanego w metodzie bazowej. Załóżmy, że zdefiniowaliśmy poniższe cztery klasy:
public class Figura {}
public class Kolo extends Figura {}
public class Base {
public Figura getValue() {...}
}
public class Sub extends Base {
public Kolo getValue() {...}
}
W naszym przykładzie metoda getValue() ma różne typy zwracanych wartości, ale ze względu na fakt, że Kolo dziedziczy z klasy Figura, dochodzi do przedefiniowania metody getValue().