Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

A definição do super() no construtor de uma classe

Ola,

Caso tenhamos uma classe que não tenha herança, ou seja, extends, é possível termos um super? Se sim, ele herda da classe Object? Se sim, traz algum impacto?

Exemplo (construtor com um parametro(String nome), com dois atributos(nome e salario):

public class Cadastro{
    private final String nome;
     private double salario;
    private int idade;

    public Cadastro(String nome) {
        super();
        this.nome = nome;
        this.salario = salario;

    }
}

E, ainda: é possível termos um construtor com apenas um parâmetro como acima (String nome) embora o construtor tenha atributos a mais do que o esperado no retorno do parametro?(super(), nome, salario)

Obrigado!

1 resposta
solução!

Toda classe que não estende explicitamente outra classe estende implicitamente o java.lang.Object . Então, super() simplesmente chama o construtor padrão de Object.

Observe que essa chamada explícita é desnecessária, pois o compilador adiciona ela para você. Você só precisa adicionar uma chamada super() em um construtor quando quiser invocar um construtor de superclasse com argumentos.

Traduzido de https://stackoverflow.com/questions/23441481/super-keyword-without-extends-to-the-super-class

Créditos na Página.

Quanto a questão dos atributos no construtor, não deve haver problema, já que o parâmetro é um dado temporário que apenas é requerido para a chamada do construtor.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software