behavior rather than replacing it completely extension is the only way to interface with superclass the following program defines multiple classes that illustrate variety of common techniques super defines method function and delegate that expects an action in subclass inheritor doesn' provide any new namesso it gets everything defined in super replacer overrides super' method with version of its own extender customizes super' method by overriding and calling back to run the default provider implements the action method expected by super' delegate method