Pessoal, alguem pode me ajudar, o que seria Overrriding e Overloading?
Ajuda Overrriding e Overloading
3 Respostas
Overrinding ainda não aprendi
Overload é quando é necessário criar varios métodos com o mesmo nome mas com assinaturas diferentes para o programa ficar funcional
exemplo
public static void main (String [] args ){
chamarTeste(2,3,3,4);
chamarTeste(4,4);
chamarTeste(4,3,3);
}
public static double chamarTeste(double a,double b, double c, double d){
double soma = a+b+c+d;
return soma;
}
public static double chamarTeste(double a,double b){
double soma = a+b+c+d;
return soma;
}
public static double chamarTeste(double a,double b, double c){
double soma = a+b+c+d;
return soma;
}
Em cima os metodos tem o mesmo nome, muda apenas o que está entre parenteses, porque a quantidade de dados passados pelo método main pode ser 3,2 ou 4…
Isso é overloading.
overriding:
classe A tem metodo XYZ
classe B extends classe A e tbm implementa metodo XYZ
ps: note
1 um metodo final nao pode ser sobre escrito
2 um metodo static na super classe tem que ser static na classe derivada
E nesse caso não é sobrescrita (pois sobrescrita é um conceito de OO, como o método é estático, não se trata de um objeto). Nesse caso apenas definimos um método com o mesmo nome do definido na superclasse. Note que ainda podem ser chamados independentemente:
class A {
public static void foo() {
System.out.println("A");
}
public void doStatic() {
foo();
}
}
class B extends A {
public static void foo() {
System.out.println("B");
}
}
Se chamarmos os métodos assim:
A.foo(); // imprime "A"
B.foo(); // imprime "B"
new A().doStatic(); // imprime "A"
new B().doStatic(); // imprime "A"