public class NullDemo {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
NullDemo n = new NullDemo();
n.execute(null);
}
public void execute(Object o) {
System.out.println("object");
}
public void execute(Double o) {
System.out.println("double");
}
}
이 실행 (더블 오)가 아닌 실행 (객체 O)어떤 오버로드 된 메서드가 실행되며 그 이유는 무엇입니까?
와 가정 실행하는 이유 .I이 이유를 알 필요가 나는이 위의 코드를 실행하고 그것을 실행 (더블 오)와 방법을 실행
public class NullDemo {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
NullDemo n = new NullDemo();
n.method1(null); /// give the compilation error
}
public void method1(Float o) {
System.out.println("object");
}
public void method1(Double o) {
System.out.println("double");
}
}
내가 왜 이렇게되는지 방법 공개 무효 방법 항목 (플로트 O) 및 공공 무효의 방법 항목 (더블 오)는는 컴파일 오류를 줄 것이다 만들면? 이것은 계층 구조와 관련이 있습니까?
double과 float을 구별하기가 힘들어 컴파일 오류가 발생한다고 생각합니다. 따라서 어떤 함수를 선택해야하는지 모호합니다. – mdebeus
답변을 찾을 수 있습니다 : http://stackoverflow.com/questions/19243708/how-do-overloaded-methods-work/19243758#19243758 –
이제 자바가 원래 태그로 사용되지 않았 음을 알았습니다. . 슬픈 시간. – Makoto