Java程序|集18的输出(覆盖)

先决条件—— Java中的重写

null

1) 以下程序的输出是什么?

class Derived
{
protected final void getDetails()
{
System.out.println( "Derived class" );
}
}
public class Test extends Derived
{
protected final void getDetails()
{
System.out.println( "Test class" );
}
public static void main(String[] args)
{
Derived obj = new Derived();
obj.getDetails();
}
}


a) 派生类 b) 考试班 c) 运行时错误 d) 编译错误

答案。 (d) 说明: 不能重写Final和static方法。有关更多详细信息,请查看: 我们能在java中重载或重写静态方法吗?

2) 以下程序的输出是什么?

class Derived
{
public void getDetails(String temp)
{
System.out.println( "Derived class " + temp);
}
}
public class Test extends Derived
{
public int getDetails(String temp)
{
System.out.println( "Test class " + 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( "Derived class" );
}
}
public class Test extends Derived
{
protected void getDetails()
{
System.out.println( "Test class" );
}
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( "Derived class" );
}
}
public class Test extends Derived
{
public void getDetails() throws Exception //line 24
{
System.out.println( "Test class" );
}
public static void main(String[] args) throws IOException //line 25
{
Derived obj = new Test();
obj.getDetails();
}
}


a) 第23行导致编译错误 b) 第24行导致编译错误 c) 第25行导致编译错误 d) 所有这些

答案。 (b) 说明: 重写方法引发的异常不应是新的或更广泛的已检查异常。在上面的代码中, 例外 是比IOException更广泛的检查异常类,因此这会导致编译错误。

5) 以下程序的输出是什么?

class Derived
{
public void getDetails()
{
System.out.printf( "Derived class " );
}
}
public class Test extends Derived
{
public void getDetails()
{
System.out.printf( "Test class " );
super .getDetails();
}
public static void main(String[] args)
{
Derived obj = new Test();
obj.getDetails();
}
}


a) 测试类派生类 b) 派生类测试类 c) 编译错误 d) 运行时错误

答案。 (a) 说明: 超级关键字 用于从子类显式调用重写的方法。

本文由 马扬克·库马尔 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 贡献极客。组织 或者把你的文章寄到contribute@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。

如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享