Each child class in the hierarchy is responsible for implementing abstract methods that have not been implemented by its superclasses.
Mixins help avoid problem caused by multiple inheritance namely, Diamond Problem. Diamond problem is the reason why Java doesn’t support multiple inheritance.
When Java encounters a call to a method that is found within the object it is treated as a call to that object’s method.
Methods and members of an abstract class can have any visibility (public, protected or public), while all methods of an interface must be public.
Implementing strings as a built-in objects allows Java to provide a full complement of features that makes string handling in Java very convenient. For example, Java provide various methods to modify a string object like methods to compare two strings, search for a substring, or concatenate two strings etc.