但是,因為java.lang.StringBuffer繼承自java.lang.Object,所以null首先匹配StringBuffer對象,輸出003。
“dwad”字符串類型其實是String,不符合java.lang.StringBuffer,但是java.lang.String繼承了java.lang.Object,所以字符串匹配對象,輸出是001。
靜態空p(StringBuffer sb){
system . out . println(" 001 ");
}
靜態空p(字符串){
system . out . println(" 002 ");
}
這兩種方法可以同時存在,但是如果使用p(null)的話,編譯就會出錯。由於上面我給出的原因,StringBuffer和String沒有繼承關系,所以null無法確定調用哪個函數,所以存在二義性問題,所以無法編譯。