overloading

다중정의는 신중히 사용하라 - [8장. 메서드(아이템52)]
📙 1. 다중정의의 문제 컬렉션을 '집합, 리스트, 그 외'로 구분하는 프로그램이 있다고 하자. public class CollectionClassifier { public static String classify(Set s) { return "집합"; } public static String classify(List s) { return "집합"; } public static String classify(Collection s) { return "집합"; } public static void main(String[] args) { Collection [] collections = { new HashSet(), new ArrayList(), new HashMap().values() }; for (Coll..

@Override 애너테이션을 일관되게 사용하라 - [6장. 열거 타입과 애너테이션(아이템40)]
@Override 애너테이션은 메서드 선언에만 달 수 있으며, 이 애너테이션이 달렸다는 것은 상위 타입의 메서드를 재정의했음을 뜻한다. @Override 애너테이션을 일관되게 사용하면 여러 가지 악명 높은 버그들을 예방해 준다. 이번 글을 통해 @Override 애너테이션을 사용하지 않았을 때의 문제점과 @Override 애너테이션을 사용했을 때의 장점 및 사용에 대해서 알아보도록 하자. 📙 1. @Override 애너테이션을 사용하지 않았을 때의 문제점 public class Bigram { private final char first; private final char second; public Bigram(char first, char second) { this.first = first; this...