By far, the most common form of inheritance is subclassing for specialization. Here the child class is a more specialized version of the parent class abstraction. A good example is the Java hierarchy of graphical components. A graphical object could be a label, a button, a checkbox, a scroll bar, a text component, or any of about a dozen other types. A text component could be a text area, which is fixed, or a text field, which can be edited by the user.