Part 1:
Examine and analyze the principles of inheritance. Take this term and explain it. Examples should be offered for the principle. Explanations should be offered about the principle's importance and how it relates to Java as opposed to other programming languages.
Part 2:
Data abstraction, and composition are Java concepts. Choose one and explain it in your own words. Discuss why you think the concept is useful for a programmer. Develop your own unique example to demonstrate how you would use the concept. Include code that clearly illustrates the selected concept.