Ola, amigos, sou novo no java, sou um Jr ainda., as estou estudando para a certificação a partir desta semana. Como não tenho grana pra compar os livrsos to catando amterial na net e fazendo exercicios para tirar minhas dúvidas.
Gostaria de postar algumas conclusões que cheguei e gostaria da ajuda de vcs.
Srs, sobre construtores e herança é correto afirmar que o comando super() ja é intrinseco ao construtor da classe filha, não preciso executar super para invocar o construtor padão da claase mãe. Agora se meu construtor na classe mae tiver uma assinatura eu preciso chamar o super() na primeira linha do meu construtor da classe filha seja ele padrão ou não.
Sempre é executado o construtor a classe mae antes da classe filha.
Se o construtor da classe filha for uns connstrutor padrão posso não declara-lo
Ja para métodos eu possso invocar super em qualquer lugar do método.
Explicar isso…
Um modo de entender como funciona os construtores é pensando assim: Um filha não nasce antes do seu pai.
Por esse exemplo de código, o construtor da classe Filha chama o construtor da classe Mae, que chama o construtor de Object.
Aí, a construção de Object é finalizada, depois o da classe Mae, assim o construtor da classe Filha é finalizado…
Filha --> Mae --> Object
Object --> Mae --> Filha
Object é a classe que está acima de qualquer classe que não estende nenhuma.
Então a saída vai ser:
Inicio Filha
Crianda Mae
Crianda Filha
Fim Filha
G
gabrielmskate
Se o construtor da classe filha for uns connstrutor padrão posso não declara-lo
Você não precisa declarar um construtor padrão... Se você não fornecer nenhum construtor, o compilador criará um pra você...
public class Mae {
}
Esse código será interpretado dessa maneira:
public class Mae {
public Mae() {
super();
}
}
Mas, se voe criar um construtor que receba argumentos, o construtor padrão do compilador, não será criado. Você terá que criar um com argumentos eu outro sem argumentos.