Java程序| Set 25的输出(多态性)

先决条件: java中的多态性

null

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

class GFG
{
protected void getData()
{
System.out.println( "Inside GFG" );
}
}
class GeeksforGeeks extends GFG
{
protected void getData()
{
System.out.println( "Inside GeeksforGeeks" );
}
}
public class Test
{
public static void main(String[] args)
{
GFG obj = new GeeksforGeeks();
obj.getData();
}
}


a) GFG内部 b) 在极客堆里 c) 编译错误 d) 运行时错误

答案。 (b) 说明: GFG类的引用变量用于指向GeeksForgeks类的对象。在编译时,JVM会检查被调用的方法是否在GFG类中定义,但在运行时,JVM会调用Geeksforgeks类的方法,因为对象来自Geeksforgeks类。提到 java中的静态绑定与动态绑定 更多细节。

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

class Test
{
void myMethod()
{
System.out.println( "GeeksforGeeks" );
}
}
public class Derived extends Test
{
void myMethod()
{
System.out.println( "GFG" );
}
public static void main(String[] args)
{
Derived object = new Test();
object.myMethod();
}
}


a) 极客 b) GFG c) 编译错误 d) 运行时错误

答案。 (c) 说明: 子类不能用作超类对象的引用。

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

class GFG
{
protected void getData()
{
System.out.println( "Inside GFG" );
}
}
class GeeksforGeeks extends GFG
{
protected void getData()
{
System.out.println( "Inside GeeksforGeeks" );
}
protected void getValue()
{
System.out.println( "GeeksforGeeks" );
}
}
public class Test
{
public static void main(String[] args)
{
GFG obj = new GeeksforGeeks();
obj.getValue();
}
}


a) 编译错误 b) 运行时错误 c) 极客 d) 这些都不是

答案。 (a) 说明: GFG引用变量用于存储Geeksforgeks对象。在编译时,JVM在GFG类中查找getValue方法。JVM检测到它的缺失,就会抛出一个编译时错误。提到 java中的静态绑定与动态绑定 更多细节。

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

interface GFG
{
void myMethod();
void getInfo();
}
abstract class Geeks implements GFG
{
void getData()
{
System.out.println( "GFG" );
}
}
public class Test extends Geeks
{
public void myMethod()
{
System.out.println( "GeeksforGeeks" );
}
public void getInfo()
{
System.out.println( "Geeks" );
}
public static void main(String[] args)
{
Geeks obj = new Test();
obj.getInfo();
}
}


a) 极客 b) 编译错误 c) 运行时错误 d) 这些都不是

答案。 (a) 说明: 类极客实现了GFG接口。所以GFG接口中声明的所有方法都会被复制到Geeks类中。因此,当在上面程序的第1行调用getInfo方法时,编译器会检查Geeks类中是否存在getInfo方法,因为Geeks类型的变量正被用来引用测试对象。

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

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


a) 编译错误 b) 运行时错误 c) GFG d) 极客

答案。 (a) 说明: 子类引用变量不能用于存储父类的实例。

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

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

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