Cursos / Informática para Internet / Programação Orientada a Objetos / Aula
Vimos que os construtores são invocados em tempo de execução quando o programador digita new para instanciar alguma classe, como no exemplo da classe carro acima. Mas, o que realmente acontece quando fazemos new Carro()?
Digamos que a classe Carro extends Veiculo e que Veiculo extends Object, como já vimos anteriormente, a palavra-chave extends é utilizada para determinar que uma classe herde de outra. Entraremos em mais detalhes sobre herança nos capítulos seguintes. Por agora, basta entender que Carro é uma subclasse de Veiculo e que Veículo é uma subclasse de Object. Exemplo:
Agora, o que o acontece quando invocamos new Carro()?
A figura a seguir demonstra como os construtores funcionam na pilha.
4. Object() |
3. Veiculo chama superObject() |
2. Carro chama super Veiculo() |
1. main() chama new Carro() |
O que faz o operador super?
Você não pode fazer uma chamada para um método de instância ou um atributo de instância, até que o construtor da sua superclasse tenha finalizado.
Versão 5.3 - Todos os Direitos reservados