안전한 오버로드와 모호한 오버로드는 인수 모양이 다르다

호출자가 캐스트 없이 하나의 의도를 표현할 수 있는지 시그니처 조합을 비교합니다.

명확한 조합

print(String,int) / print(String[],int[],int)

모호한 조합

describe(String) / describe(StringBuilder) + null

핵심: 행동 의미가 다르면 타입만 늘리기보다 메서드 이름 자체를 분리합니다.