I understand that Java does not have multiple inheritance.
I'm reading Effective Java 3rd Edition Item 20 (page 102), here is a portion from the page:
The beauty of skeletal implementation classes is that they provide all of the implementation assistance of abstract classes without imposing the severe constraints that abstract classes impose when they serve as type definitions. For most implementors of an interface with a skeletal implementation class, extending this class is the obvious choice, but it is strictly optional. If a class cannot be made to extend the skeletal implementation, the class can always implement the interface directly. The class still benefits from any default methods present on the interface itself. Furthermore, the skeletal implementation can still aid the implementor’s task. The class implementing the interface can forward invocations of interface methods to a contained instance of a private inner class that extends the skeletal implementation. This technique, known as simulated multiple inheritance, is closely related to the wrapper class idiom discussed in Item 18. It provides many of the benefits of multiple inheritance, while avoiding the pitfalls.
Since English is not my native language, the bold part of the quote got me confused. And I got no result when search for the answer.
What is this private inner class
? Is this like a normal inner class?
In practice, does this technique get use very often?
Any code example would be extremely useful for me to visualize!
Thank you!