

We are maybe not interested in the details from this perspective. The landedOn() is a polymorphic call that will have many implementations, depending on the instance of Square that receives the message. I often cite his book (because a lot of the questions with the UML tag are covered in it!) but Craig Larman tackles it with the Monopoly example in Chapter 25. However, it takes two diagrams to do this. To elaborate on comment, sometimes it's useful to show the perspective of the design with the abstract class and the perspective of the details of the implementations.

In fact, I believe sequence diagrams are a great way to catch misunderstandings about polymorphism. I've taught sequence diagrams often, and it's common for students to think that an abstract class is between the sender and the receiver of a message, like a kind of intercepting class object.
