Estava fazendo uns testes sobre generics e de repente vejo 2 questões assim:
class Parent {
void say(Number number) {
}
}
class Child extends Parent {
<T extends Number> void say(T number) {
}
}
Nesse caso o código não compila.
class Parent {
<T extends Number> void say(T number) {
}
}
class Child extends Parent {
void say(Number number) {
}
}
Agora neste caso, o código compila!
Fiquei meio perdido sobre qual a regra disso acontecer porque não entendi se isso é um overloading ou overriding, e nem tenho muita idéia de como funcionam com genericos.... =(
Se alguém aí puder me ajudar agradeço já ! =)