Java问题,我不明白

时间:2018-04-27 12:29:33

标签: java class object

我很抱歉,我可能看起来很愚蠢但是我正在学习新高中的新Java:

public class One
{
    public void display()
    {
        System.out.print ("One");
    }
}

public class Two extends One
{
    public void display ()
    {
        System.out.print("Two");
    }
}
  

执行以下代码段后打印的内容是什么?

One object1= new Two();
object1.display();
     
      
  1. ONETWO

  2.   
  3. TwoOne

  4.   
  5. 两个

  6.   
  7.   
  8. 无输出

  9.   

任何人都可以帮助我回答上面的问题,我已经阅读了很多关于对象和类以及它们如何操作以及子类如何工作但我无法解决这个问题,plx帮助。

编辑:这是一个AP计算机科学一个问题我没有真正有一个导师/老师接触到大多数java是我自学,所以我认为自己作为Java的初学者但我得到了很多覆盖,谢谢你的帮助!!

1 个答案:

答案 0 :(得分:1)

好的答案是3.“两个”。

要了解原因,您必须了解多态性和覆盖: 在您的情况下,您有两个类:

+------------------+
|        Two       |
+------------------+
          |
        extend
          |
          v
+------------------+
|        One       |
+------------------+

来自One的所有公共和受保护字段都是可见的,并且可由2覆盖。 在您的情况下,One.display()会覆盖Two.display()

如果代码遵循Java约定,那么在Two.display()方法之上应该有注释@Override,以便向其他开发人员以及检查该方法是否已存在的编译器显示此行为。父对象。

我希望我能提供帮助。