一个类可以有多个具有相同名称的方法,但方法的参数列表不应相同。这称为方法重载。方法重载有点类似于构造函数重载。
演示此的程序如下所示-
class PrintValues { public void print(int val) { System.out.println("The value is: " + val); } public void print(double val) { System.out.println("The value is: " + val); } public void print(char val) { System.out.println("The value is: " + val); } } public class Demo { public static void main(String[] args) { PrintValues obj = new PrintValues(); obj.print(7); obj.print(19.3); obj.print('A'); } }
输出结果
The value is: 7 The value is: 19.3 The value is: A
现在让我们了解上面的程序。
print()
在方法重载的实现中,使用三种方法创建PrintValues类。其中一个采用int类型的参数,另一个采用double类型的参数,最后一个采用char类型的参数。演示此代码段如下:
class PrintValues { public void print(int val) { System.out.println("The value is: " + val); } public void print(double val) { System.out.println("The value is: " + val); } public void print(char val) { System.out.println("The value is: " + val); } }
在该main()
方法中,将创建类PrintValues的对象obj print()
,并分别使用参数7、19.3和'A'调用该方法三次。演示此代码段如下:
public class Demo { public static void main(String[] args) { PrintValues obj = new PrintValues(); obj.print(7); obj.print(19.3); obj.print('A'); } }
可能重复:NULL参数的方法重载 以下代码编译并运行良好。 在此代码中,要调用的方法是接受字符串类型参数的方法 医生说。 如果多个成员方法既可访问又适用于方法调用,则需要选择一个来为运行时方法调度提供描述符。Java编程语言使用选择最具体方法的规则。 但我不明白,当代码中接受原语int参数的方法之一被修改为接受包装器类型Integer的参数时,例如, 发出编译时错误。 对temp的引用不明确,me
问题内容: 以下代码可以编译并正常运行。 在此代码中,要调用的方法是接受type参数的方法 该文档说。 如果多个成员方法既可访问又可应用于方法调用,则必须选择一个成员方法来为运行时方法分派提供描述符。Java编程语言使用选择最具体方法的规则。 但是我不明白何时将接受原始参数的代码中的方法之一修改为接受包装器类型的参数,例如, 发出编译时错误。 对temp的引用含糊不清,methodoverload
我想知道,非静态方法的用途是什么。我的理解是,静态方法可以直接调用,也可以由类的对象调用,而非静态方法只能由类的一个对象调用。 上述方法可以直接调用,也可以由类的对象调用。那么,我什么时候应该使用非静态方法呢?
我写了下面的代码来满足程序要求如下: 写一个程序,读取三个整数并显示三个数字的平均值。 输入说明:在控制台输入三个整数(非负整数)。 输出注释(提示和标签):程序提示输入带有以下字符串的三个整数:“输入第一个整数。”、“输入第二个整数。”、“输入第三个整数。”然后程序打印 名称规范:您的应用程序类应该被称为Average3: 我的源代码: 我的程序编译得很好,但我知道我可以用一个关联的方法实现和调
我有一个Foo和Bar对象的列表,以及每个相应对象的转换器。 Convert-method需要有所不同,因为Bar1与Bar2和Bar3等有很大不同,但是我想创建一个方法来处理所有可能的列表。 是否可以创建一个泛型方法,根据列表的内容调用相应的非泛型方法? 到目前为止,我已经尝试过了: 但这并不能编译,因为"无法解析方法'Converts(T, S)'" 有什么想法吗?
我正在尝试用Python实现方法重载: 但输出是第;同样地: 给予 我该怎么做呢?