Title: Explain the fundamentals of object-oriented programming.
Course: Java Programming (Oracle) (10055) > Section: Learning the Fundamentals of Java as an Object-Oriented Programming Language

Explanation should include the principles of

- Inheritance—It is a form of software reusability in which new classes are created from existing classes by absorbing their attributes and behaviors and adding new capabilities the new classes require. Reusability takes advantage of class relationships where objects of a certain class—such as a class of vehicles—have the same characteristics.
- Polymorphism—It is possible to design and implement systems that are more easily extensible. Programs can be written to process generically (as a superclass generically, as subclass objects, or as objects of all existing classes in a hierarchy).
- Encapsulation—The code can be protected from outside manipulation by other objects by using the keyword PRIVATE or PROTECTED. These access modifiers ensure that code will not be altered in an undesirable fashion by outside users.