Questão sobre serialização

7 respostas
jason_bourne

Pessoal,

Tenho essa questão:

class Mammal{
Mammal(){System.out.print("fur bearing");}
}
class Platypus extends Mammal implements Serializable{
Platypus(){System.out.print("egg laying");}
}

Alguém pode me explicar pq o resultado deu fur bearing ?

7 Respostas

V

em que momento a saida foi fur bearing ?

Quando Platypus for instanciado a saida tem q ser "fur bearing egg laying"
E quando vc deserializar Platypus a saida é “fur bearing”, isso ocorre pq Mammal nao é serializado sendo assim é executado o construtor padrao.

jason_bourne

vdb:
em que momento a saida foi fur bearing ?

Quando Platypus for instanciado a saida tem q ser "fur bearing egg laying"
E quando vc deserializar Platypus a saida é “fur bearing”, isso ocorre pq Mammal nao é serializado sendo assim é executado o construtor padrao.

Então quando eu implemento o Serializable ele não usa o construtor padrão?

M

"

jason_bourne

Então é por isso que só aparece fur bearing. Pois como a classe Platypus implementa Serializable, ele não vai usar o construtor Platypus()…correto?

M

"

ricardo13

olá pessoal,

eu vi esse tópico de vcs … e axei bastante interessante …pq a partir das respostas de vcs eu vi q quando eu postei nesse tópico: http://www.guj.com.br/posts/list/107321.java

eu vi q eu estava errado.

Só para entender…

quer dizer q sempre será chamado o construtor default da superclasse, quando a subclasse implementa Serializable ???

Muito Obrigado

Ricardo

V

Isso mesmo. So nao ira executa-lo se a super classe implementar serializable.

Criado 23 de outubro de 2008
Ultima resposta 27 de out. de 2008
Respostas 7
Participantes 4