多态性:方法绑定在这段代码中是如何发生的?

时间:2019-05-23 15:50:29

标签: java oop polymorphism

我发现这个answer的时候是想确切地理解答案中展示的问题。但是,我不明白给出的简短解释。

这是代码

<a href=# onclick="function();" ></a>

据我所知, Java找到了在运行时调用的正确方法,但是在此特定代码中,如果我们按照上述假设进行操作,则预期输出将有所不同来自实际的。

预期输出:

public class GamePlayer {

     public void doSomething(Worker worker) {
      System.out.println("I'm a worker");
     }

     public void doSomething(Teacher teacher) {
      System.out.println("I'm a Teacher");
     }

     public void doSomething(Principal principal) {
      System.out.println("I'm a Principal");
     }

     public static void main(String[] args) {

      GamePlayer example = new GamePlayer();
      Worker principal = new Principal();
      Worker teacher = new Teacher();

      example.doSomething(principal);
      example.doSomething(teacher);
     }
    }

实际输出:

I'm a Principal
I'm a Teacher

这里的Java程序如何精确地达到实际输出?方法绑定不是在运行时发生的吗?

0 个答案:

没有答案