クローンの作り方がよくわかんないです

Hoge x1=new Hoge();
Hoge x2=(Hoge)x1.clone_();
Hoge x3=new Hoge(x1);
x1-x3のどれかのメンバを変えるとそれが他の2つにも影響して3つとも同一の内容になります。
なんか基本的な勘違いしてる?

class Hoge extends Object implements Cloneable{

public Hoge (Hoge x){
this.member=(Object)x.member.clone();
}
...
public Hoge clone_(){
Hoge r=new Hoge(this);
return r;
}
}