Method overloading using derived types as parameters in Java

后端 未结 3 1453
感动是毒
感动是毒 2021-01-14 15:21

Let\'s say I have existing code which I want to extend but also to avoid changing it as much as possible.

Somewhere around this code there is a method that receives

3条回答
  •  滥情空心
    2021-01-14 15:43

    That happens because Java uses single dispatch. This ends meaning that in your case, the method called depends on the type of reference "b", which is Base, and not on the type of the instance that "b" holds. Therefore, method xpto.(Base b) will always be called.

    You really have to cast it or use the last approach you wrote.

提交回复
热议问题