Sobreposição de metodo

Aee galera to com um problema quando chamo o metodo sobreposto clone(), el sempre retorna um null.

Ponto y=(Ponto) p.clone();

aqui vai o codigo , agradeceria qualquer ajuda

[code]public class Ponto {
private float x,y;

public Ponto(float x, float y){
	this.x=x;
	this.y=y;
}

public float getx(){
	return x;
}

public float gety(){
	return y;
}

public void setx(float x){
	this.x=x;
}

public void sety(float y){
	this.y=y;
}

public String toString(){
	return "("+x+","+y+")" ;
}

public Object clone(){
	try{
		return super.clone(); 
	}catch(CloneNotSupportedException e){
		return null;
	}
}	
public int hashCode(){
	return Integer.parseInt(""+(int)x+(int)y);
}

}[/code]

Vc precisa implementar a interface Cloneable.

T+