Cloneable은?

그러나 아쉽게도 의도한 목적을 제대로 이루지 못했음

clone 메서드의 허술한 일반 규약

clone을 재정의할 때 어떤 걸 조심해야할까?

주의할 것 1

public class Coffee implements Cloneable {
    @Override
    public synchronized Coffee clone() {
        Coffee clone;
        try {
            clone = (Coffee) super.clone();
        } catch (CloneNotSupportedException e) {
            throw new AssertionError();
        }
        return clone;
    }
}