ae galera qual a diferença dos dois ai? pq um metodo sobrecarregado eh tempo de compilação e o subscrito eh tempo de execução… nao entendi a diferença quem puder mim dar um toke hehe!
O primeiro é porque você está criando um novo método, e é checado se este já existe, se não é criado um novo método, de mesmo nome com a lista de parâmetros diferente.
O segundo é tempo de execução pois é resolvido que método chamar apenas na hora de execução.
Suponha que vc tenha:
[code]
public class A {
public void oi() {
System.out.println( “oi A”);
}
}
public class B extends A {
public void oi() {
System.out.println( “oi B”);
}
}
A a1 = new A();
A a2 = new B();
a1.oi();
a2.oi();[/code]
Vai imprimir
oi A
oi B
Pois apesar da referência de a2 ser do tipo A, o objeto real é do tipo B, então o compilador resolve em tempo de execução que o método a ser chamado é do objeto B e não do A.
Se falei alguma besteira me corrijam, mas eu tenho quase certeza que é isso.