Declaring subclasses that inherit the implementation of interfaces
We have the SocialAnimal abstract class that implements both the Sociable and Comparable<Sociable> interfaces. We cannot create instances of this abstract class. Now, we will create a concrete subclass of SocialAnimal named SocialLion. The class declares a constructor that ends up calling the constructor defined in the superclass. The class implements the four abstract methods declared in its superclass to return the appropriate values for a lion that will participate in a party. The code file for the sample is included in the java_9_oop_chapter_10_01 folder, in the example10_01.java file.
public class SocialLion extends SocialAnimal { public SocialLion(String name, int age) { super(name, age); } @Override public String getDanceRepresentation() { return "*-* ^\\/^ (-)"; } @Override public String getFirstSoundInWords() { return "Roar"; } @Override public...