Teoria básica de Overloar e Override…
Overload
Overload ou Sobrecarca de métodos, são dois ou mais métodos na mesma classe(inclusive mpetodos herdados de uma sepr classe) com o mesmo nome, mas cdiferentes lista de argumentos, o tipo de retorno e as exceptions lançadas também podem ser diferentes dos outros métodos.
Exemplo:
class A {
public void Metodo() {
}
public void Metodo(String string) {
}
public int Metodo(int numero) {
return 0;
}
public Integer Metodo(Integer i) throws IOException {
return null;
}
}
Override
Override ou Sobrecrita de método. Quando você herda uma classe você herda todos os métodos que não sejam privados, estes métodos podem ser reescritos nas classes filhas. Eles devem ter a mesma lista de parametros, o mesmo tipo de retorno e NUNCA lançar uma Exception maior do que o método escrido na classe pai.
Vamos reescrever os metodos da classe A:
class B extends A {
public void Metodo() {
}
public void Metodo(String string) {
}
public int Metodo(int numero) {
return 0;
}
public Integer Metodo(Integer i) throws FileNotFoundException {
return null;
}
}
Acima estão as sobrescritas válidas, talvez alguém pergunte se o método
public Integer Metodo(Integer i) throws FileNotFoundException {
return null;
}
Que está na classe B está correto, sim está correto, pois FileNotFoundException é filha de IOException, o que não poderia é lançar uma Exception maior que IOExcpetion, com Exception por exemplo.
Lembrando que as regras de exceptions são somente para CheckedExceptions!
É isso ai!
Ah! Quase que me esqueço! não podemos diminur a visibilidade de um método sobrescrito!
Atn.
Dennys Fredericci
http://www.dennys.eti.br