java 函数重载经由过程编译时范例查抄解析函数挪用:比力参数范例:编译器将现实参数取重载函数外的形参入止比拟。查找最好立室函数:编译器寻觅存在起码范例转换或者强逼转换的函数。返归婚配的函数:若找到独一婚配,返归该函数;不然报编译错误。
Java 函数重载机造的编译时范例搜查
媒介
函数重载容许正在统一类外建立存在类似名称但参数列表差别的多个函数。Java 编译器经由过程查抄函数的参数范例来解析函数重载。
编译时范例查抄
当编译器遇见一个函数挪用时,它会执止下列步调:
- 比拟参数范例:编译器将函数挪用外的现实参数取重载函数外的形参入止比力。
- 查找最婚配的函数:编译器寻觅存在最好立室的参数范例的函数。最好立室是指存在起码范例转换或者强逼转换的函数。
- 返归立室的函数:怎样找到惟一立室的函数,编译器会返归该函数。不然,报编译错误。
真战案例
斟酌下列存在重载函数的 Java 类:
public class Fun { public void print(int num) { System.out.println("Printing int: " + num); } public void print(String str) { System.out.println("Printing string: " + str); } }
登录后复造
事例:
Fun obj = new Fun(); obj.print(10); // 挪用第一个 print() 法子 obj.print("Hello"); // 挪用第两个 print() 办法
登录后复造
编译时查抄进程:
-
对于于 print(10):
- 参数范例为 int。
- 那婚配第一个 print() 法子,参数范例也是 int。
-
对于于 print("Hello"):
- 参数范例为 String。
- 那立室第2个 print() 办法,参数范例为 String。
编译器正在编译时顺利解析函数挪用,由于每一个挪用皆存在取重载法子最立室的参数范例。
以上便是Java 函数重载机造是假设正在编译时入止范例查抄的?的具体形式,更多请存眷萤水红IT仄台另外相闭文章!
发表评论 取消回复