Herdando de uma “Regular” Inner Class (2º exemplo)

class Externa{

Externa(){

System.out.println(“new Externa()”);

}

void check(){

System.out.println(“Externa: Check”);

}

class Interna{

Interna(){

System.out.println(“new Interna()”);

check();

}

}

}

class Filha extends Externa.Interna{

Filha(){

new Externa().super();

System.out.println(“new Filha()”);

}

}

public class TestOut{

public static void main(String args[]){

Externa.Interna i = new Externa().new Interna();

System.out.println(“************Instanciando a filha**********”);

Filha f = new Filha();

}

}

Output:

new Externa()

new Interna()

Externa: Check

************Instanciando a filha**********

new Externa()

new Interna()

Externa: Check

new Filha()

Temos que garantir que todas as instâncias da classe Filha tenha uma instância envolvente da classe Externa para a classe Externa.Interna que, conforme exemplo acima, é a super classe de Filha. Caso isso não ocorra, o construtor da classe Externa.Interna não poderia acessar o método check() da casse Externa.

Esta entrada foi publicada em inner class com as etiquetas . ligação permanente.

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s