Witam. Mam pytanie dotyczące adnotacji Override:
class Klasa {
Klasa() {
System.out.println("Konstruktor Klasa");
}
void metoda(int i, float f) {
System.out.println("Ok");
}
void metoda(int i) {
System.out.println("Int: " + i);
}
void metoda(float f) {
System.out.println("Float: " + f);
}
void metoda(char c) {
System.out.println("Char: " + c);
}
}
class Jakas extends Klasa{
Jakas() {
System.out.println("Konstruktor Jakas");
}
@Override void metoda(int i, float f) {
System.out.println("Int i Float: " + i + " " + f);
}
}
public class Glowna {
public static void main(String[] args) {
Jakas a = new Jakas();
a.metoda(10, 10.5f);
}
}
Z tego co napisane jest w Thinking in Java wnioskuję, że dodanie Override powoduje to, że metoda o nazwie "metoda" w klasie Jakas przesłania wszystkie metody w klasie Klasa i w przypadku gdy zrobię np. wywołanie a.metoda('a'); to zgłosi błąd. Jednak chyba nie do końca tak to działa. Czy mógłby mi ktoś rozjaśnić co dokładnie powoduje dodanie tej adnotacji?