Algumas duvidas

Ae galera eu to com algumas duvidas em umas questoes q eu errei

Vejam esse codigo:

[code]
class A
{
A(){
System.out.println("Class A Constructor ");
}
}

public class B extends A{
B(){
System.out.println("Class B Constructor");
}
public static void main(String[] args){
B b = new B();
}

} [/code]
Pois é…
Eu pensei que ia sair so "Class B Constructor"
Mas nao…
Saiu :
Class A Constructor
Class B Constructor

Porque?

Nao houve nenhuma chamada a super()… porque ele chamou o construtor de A? Ou super soh serve pra chamar metodos overriden da classe pai??? Meu conceito de super() está errado?

Segunda dúvida:

No codigo:

public class teste{ 
  static char staticArray[] = new char[5];
  public static void main(String[] args){ 
    System.out.println(staticArray[1]);  
} 
   
} 

Bom essa eh o seguinte
Eu pensei que como a variavel staticArray eh membro entao ela seria autoinicializada… Dai pra char eh /u0000
A saida desse codigo eh nada…
/u0000 eh nada mesmo ou a variavel nao foi inicializada?

Valeu galera

Bem no primeiro caso ele não precisa do Super pra rodar o construtor default, por isso quando vc cria um Objeto de B automaticamente ele roda o construtor de A.
No segundo caso ele inicializa sim com --> ‘’ que no caso não possui nenhum valor.

Alan

duardor:

  1. Quando se chama um construtor de uma classe, primeiro este chama o construtor de sua classe pai e depois o seu próprio construtor; a classe pai, por sua vez, chama da classe avô e depois o seu próprio construtor; e assim por diante até chegar até chegar a Object. Isso acontece independente da classe ter seu construtor personalizado ou não.
  2. Quando se declara um atributo de uma classe sem determinar seu valor, ele é preenchido por um valor padrão. No caso especifico de char (e você criou cinco atributos char) este valor é 0, que no Unicode equivale a /u0000. Aliás chars, ints, doubles e outros tipos numéricos possuem valor 0 por default. um tipo boolean vale false. E Objetos e Arrays (por exemplo, se você tivesse declarado seu vetor sem inicializá-lo) valem null.

Espero ter ajudado,