[Item13] Cloneable 금지
Cloneable은 mixin interface라고 한다, 믹스인 인터페이스가 무엇일까? Item20에서 자세히 설명되어 있는데 A라는 클래스가 있다면 Cloneable과 같은 mixin interface를 구현하게 하면 A 클래스가 가진 본연의 기능에 다른 기능을 덧붙이기 때문에 (mix-in) 믹스인이라고 한다 두 번째 코멘트를 보자 자바에서는 인터페이스에 상태나 코드를 가질 수 없어 믹스인 인터페이스란 건 없다고 하며 추상 클래스를 이용했다면 다중 상속을 지원하지 않기에 모든 조건을 만족할 수 없다고 했다 자바8 이후로 인터페이스에서 메서드 구현이 가능하므로 이제는 믹스인 인터페이스가 존재할 수 있다 그럼에도 Cloneable은 정상적인 믹스인 인터페이스라고 할 수 없는데 clone() 메서드를 직..
Java/Effective Java
2022. 2. 20. 00:41