Herança, comando SUPER

Boa tarde pessoal, tudo bem?
Estou fazendo um trabalho sobre herança e tenho que fazer um executavel no Netbeans, estou com duvida sobre uso do comando SUPER mas na parte de metodos, quando eu devo utiliza-lo??

Não é comando, é uma palavra reservada cuja finalidade se baseia em indicar a chamada a elementos da superclasse. Exemplo:

public class A {
    public int soma(int n1, int n2) {
        return n1 + n2;
    }
}

public class B extends A {
    public void processa() {
        System.out.println("A soma 1 + 1 tem resuiltado " + super.soma(1, 1));
    }
}

Entendeu?

Sempre que for necessário invocar algo que esteja na superclasse, como no exemplo acima.

1 curtida

Entendi sim, mas tipo se eu tiver um método na superclasse que quero só reaproveitar o código dele (exatamente igual) não preciso dar @Override?
Se não, como chama-lo?? com esse "super.soma(1,1) que vc chamou é isso??
Quando exatamente tenho que usar o @Override?

O override indica que um método foi sobrescrito (conceitualmente, essa modificação na ação realizada por um método está associada ao que chamamos de polimorfismo).
Veja, você pode ter um método com um nível de abstração maior na super classe (mais genérico) e, para as subclasses, ter métodos mais especializados.

public class Animal {
    public void falar() {
        System.out.println("Animal falando");
    }
}


public class Gato extends Animal {
    @Override
    public void falar() {
        System.out.println("Miau");
    }
}

Entendeu?

1 curtida

Cara você salvou minha nota na faculdade kkkk tava fazendo merda no código fazendo coisa que não precisava kkkkkkkkk muito obrigado ajudou muito mesmo /////////////////
Estava colocando um monte de @Override sem necessidade pois ia usar o método do mesmo jeito sendo que só precisava colocar super.falar() e resolveria kkkkk,
Obgd mesmo de verdade.