📜  Java程序的输出| 重写Override

📅  最后修改于: 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。