Each inner class can independently inherit from an implementation. Thus, the inner class is not limited by whether the outer class is already inheriting from an implementation.
1.The inner class can have multiple instances, each with its own state information that is independent of the information in the outer class object.
2.In a single outer class you can have several inner classes, each of which implement the same interface or inherit from the same class in a different way. 3.The point of creation of the inner class object is not tied to the creation of the outer class object.
4.There is no potentially confusing “is-a” relationship with the inner class; it’s a separate entity.