📅  最后修改于: 2020-03-19 13:13:19             🧑  作者: Mango
先决条件: 用Java覆盖
1)以下程序的输出是什么?
class Derived
{
protected final void getDetails()
{
System.out.println("派生类");
}
}
public class Test extends Derived
{
protected final void getDetails()
{
System.out.println("测试类");
}
public static void main(String[] args)
{
Derived obj = new Derived();
obj.getDetails();
}
}
a)派生类
b)测试类
c)运行时错误
d)编译错误
答案:(d)
说明:最终和静态方法不能被重写哦。
2)以下程序的输出是什么?
class Derived
{
public void getDetails(String temp)
{
System.out.println("派生类 " + temp);
}
}
public class Test extends Derived
{
public int getDetails(String temp)
{
System.out.println("测试类 " + temp);
return 0;
}
public static void main(String[] args)
{
Test obj = new Test();
obj.getDetails("GFG");
}
}
a)派生类GFG
b)测试类GFG
c)编译错误
d)运行时错误
答案。(c)
说明:覆盖方法必须具有相同的签名,包括参数列表和返回类型。有关详细信息,请参见:Java中的重写
3)以下程序的输出是什么?
class Derived
{
public void getDetails()
{
System.out.println("派生类");
}
}
public class Test extends Derived
{
protected void getDetails()
{
System.out.println("测试类");
}
public static void main(String[] args)
{
Derived obj = new Test(); // line xyz
obj.getDetails();
}
}
a)测试类
b)由于行xyz导致的编译错误
c)派生类
d)由于访问修饰符导致的编译错误
答案:(d)
说明:覆盖方法不能具有更多的限制性访问修饰符。
4)以下程序的输出是什么?
import Java.io.IOException;
class Derived
{
public void getDetails() throws IOException //line 23
{
System.out.println("派生类");
}
}
public class Test extends Derived
{
public void getDetails() throws Exception //line 24
{
System.out.println("测试类");
}
public static void main(String[] args) throws IOException //line 25
{
Derived obj = new Test();
obj.getDetails();
}
}
a)第23行引起的编译错误
b)第24行引起的编译错误
c)第25行引起的编译错误
d)以上都是
答案。(b)
说明:重写方法抛出的异常不应是新的或更广泛的异常类。在上面的代码中,Exception是比IOException更广泛的检查异常类,因此这会导致编译错误。
5)以下程序的输出是什么?
class Derived
{
public void getDetails()
{
System.out.printf("派生类 ");
}
}
public class Test extends Derived
{
public void getDetails()
{
System.out.printf("测试类 ");
super.getDetails();
}
public static void main(String[] args)
{
Derived obj = new Test();
obj.getDetails();
}
}
a)测试类派生类
b)派生类测试类
c)编译错误
d)运行时错误
答案。(a)
说明:super关键字用于从子类中显式调用重写的方法。