2
respostas

Diferença entre this() e super()

Pode esclarecer a diferença entre o this() e o super() ? Com exemplos aplicados.

2 respostas

Ola, Isabela.

O this serve para referenciar os variaveis do próprio objeto, e o super é pra referenciar variaveis que estão em classes mãe daquela classe.

O exemplo seria, se eu tivesse uma classe chamada Pessoa e uma filha dela que chamaria PessoaFisica, nesse caso, dentro da classe PessoaFisica, para chamar o cpf por exemplo usuaria o this.cpf e para chamar o nome usuaria o super.nome

Consegui explicar?

Oie Isabela, tudo bem contigo?

O "this()" é usado quando existe mais de um construtor na mesma classe, e ele serve para chamar outro construtor, segue o exemplo:

public class Estudante {

    private String name;

    public Estudante(String nome) {
        System.out.println("Nome do estudante : " + nome);
    }

    public Estudante() {
            this("Eduardo") // esse this chama o primeiro construtor, isso acontece já que ele identifica através do parâmetro String qual é o construtor que só recebe esse dado como argumento, que no caso, seria o primeiro construtor
    }

Já o super() é usado para chamar o construtor da super classe, segue exemplo:

Classe Funcionário (super classe):

public class Funcionario {

        private String nome;

        public Funcionario(String nome) {
                this.nome = nome;
        }

}

Classe Gerente (subclasse):

public class Gerente {

        public Gerente(String nome){
                super(nome); // chamou o construtor da super classe
        }
}

Alguns links que eu recomendo para se aprofundar mais nesse são esses:

Espero ter conseguido ajudar!

Se ainda restar dúvida é só mandar mensagem por aqui :)