Interfaces

Oi Pessoal,

Minha dúvida é a seguinte, como pode uma interface sem código algum somente uma declaração fazer alguma coisa de especial.

Ex: a Classe Object não possui código algum com relação a clone, somente a seguinte assinatura
protected native Object clone() throws CloneNotSupportedException;
Nem implementar a interface Cloneable a classe Object implementa.

Como funciona isso? se em nenhum dos dois lugares tem implementação, alias acho que não tem pois não achei nada…

por que eu preciso da um super.clone() sendo que estou chamando o construtor de Object

Abraço

dnakabal,

Lá dentro do ‘jarzão’ do JRE ou JSDK existem os bytecodes do método clone da classe Object. Esse código está dormindo, mas ele tem a capacidade de fazer uma cópia rasa de uma instância de uma classe derivada de Object (qualquer classe, of course). Para acordar esse método, a classe derivada tem que implementar a interface Cloneable. Se o usuário sobrescrever o método da superclasse, é conveniente, mas não mandatório, começar com uma cópia rasa, ou seja, uma chamada a super.clone().

T+

[quote=“hipersoft”]dnakabal,

Lá dentro do ‘jarzão’ do JRE ou JSDK existem os bytecodes do método clone da classe Object. Esse código está dormindo, mas ele tem a capacidade de fazer uma cópia rasa de uma instância de uma classe derivada de Object (qualquer classe, of course). Para acordar esse método, a classe derivada tem que implementar a interface Cloneable. Se o usuário sobrescrever o método da superclasse, é conveniente, mas não mandatório, começar com uma cópia rasa, ou seja, uma chamada a super.clone().

T+[/quote]

mas como assim kra, se na classe object não tem código como vai ter em um bytecode perdido?

falowww