📅  最后修改于: 2020-03-19 12:07:09             🧑  作者: Mango
先决条件: Java重载
1)以下程序的输出是什么?
public class Test
{
public int getData() //getdata() 1
{
return 0;
}
public long getData() //getdata 2
{
return 1;
}
public static void main(String[] args)
{
Test obj = new Test();
System.out.println(obj.getData());
}
}
a)1
b)0
c)运行时错误
d)编译错误
答案。(d)
说明:对于方法重载,方法必须具有不同的签名。方法的返回类型不会导致不同的方法签名,因此上面的代码给出了编译错误。getdata 1和getdata 2的区别仅在于返回类型。
2)以下程序的输出是什么?
public class Test
{
public int getData(String temp) throws IOException
{
return 0;
}
public int getData(String temp) throws Exception
{
return 1;
}
public static void main(String[] args)
{
Test obj = new Test();
System.out.println(obj.getData("GFG"));
}
}
a)0
b)1
c)编译错误
d)运行时错误
答案。(c)
说明:引发不同异常的方法不会重载,因为它们的签名仍然相同。
3)以下程序的输出是什么?
public class Test
{
private String function()
{
return ("GFG");
}
public final static String function(int data)
{
return ("芒果文档");
}
public static void main(String[] args)
{
Test obj = new Test();
System.out.println(obj.function());
}
}
a)编译错误
b)运行时错误
c)GFG
d)这些都不是
答案。(c)
说明:与方法关联的访问修饰符不能确定重载标准。重载的方法也可以声明为final或static,而不影响重载条件。
4)以下程序的输出是什么?
public class Test
{
private String function(String temp, int data)
{
return ("GFG");
}
private String function(int data, String temp)
{
return ("芒果文档");
}
public static void main(String[] args)
{
Test obj = new Test();
System.out.println(obj.function(4, "GFG"));
}
}
a)GFG
b)芒果文档
c)编译错误
d)运行时错误
答案。(b)
说明:参数的顺序是确定方法重载的重要参数。由于属性的顺序不同,因此方法会重载。
5)以下程序的输出是什么?
public class Test
{
private String function(String temp, int data, int sum)
{
return ("GFG");
}
private String function(String temp, int data)
{
return ("芒果文档");
}
public static void main(String[] args)
{
Test obj = new Test();
System.out.println(obj.function("GFG", 0, 20));
}
}
a)GFG
b)编译错误
c)运行时错误
d)芒果文档
6)以下程序的输出是什么?
public class Test
{
private String function(float i, int f)
{
return ("gfg");
}
private String function(double i, double f)
{
return ("GFG");
}
public static void main(String[] args)
{
Test obj = new Test();
System.out.println(obj.function(1., 20));
}
}
a)GFG
b)编译错误
c)运行时错误
d)芒果文档
答案。(a)
说明:这真的很简单。不同类型的参数会导致方法重载,因为方法的签名随属性的类型而改变。显然,在方法重载中会调用任何与属性匹配的属性。在这里,我们传递第一个属性double而不是float。