clone メソッドのオーバーライドが分かりました.
てか,戻り型を Object にして,呼び出すときはキャストで型変換するのね.
public Object clone() { try { Edge e = (Edge) super.clone(); ... return e; } catch (CloneNotSupportedException exc) { throw (new InternalError(exc.getMessage())); } }
Edge e = (Edge) this.clone();