Only say, “default method,” when referring to interfaces. You have concrete methods in the Animal class (which class should probably be declared abstract) and you are overriding them in the subclasses. Whenever you are overriding methods, tag them with @Override. Look at the three Java® Language Specification (=JLS) links in that page, and this Java™ Tutorials page for more information..
You can access showLove() like this:-Not only is that code awkward to read, but also I think any use of instanceof is a sign of bad design in your inheritance.