Polymorphism, Encapsulation, and Inheritance Work Together:
When properly applied,
polymorphism, encapsulation, and inheritance combine to produce a programming
environment that supports the development of far more robust and scaleable
programs than does the process-oriented model. A well-designed hierarchy of
classes is the basis for reusing the code in which you have invested time and
effort developing and testing. Encapsulation allows you to migrate your
implementations over time without breaking the code that depends on the public
interface of your classes. Polymorphism allows you to create clean, sensible,
readable, and resilient code. Of the two real-world examples, the automobile
more completely illustrates the power of object-oriented design. Dogs are fun
to think about from an inheritance standpoint, but cars are more like programs.
All drivers rely on inheritance to drive different types (subclasses) of
vehicles. Whether the vehicle is a school bus, a Mercedes sedan, a Porsche, or
the family minivan, drivers can all more or less find and operate the steering
wheel, the brakes, and the accelerator. After a bit of gear grinding, most
people can even manage the difference between a stick shift and an automatic,
because they fundamentally understand their common superclass, the
transmission.
People interface with
encapsulated features on cars all the time. The brake and gas pedals hide an
incredible array of complexity with an interface so simple you can operate them
with your feet! The implementation of the engine, the style of brakes, and the
size of the tires have no effect on how you interface with the class definition of the pedals. The final attribute,
polymorphism, is clearly reflected in the ability of car manufacturers to offer
a wide array of options on basically the same vehicle. For example, you can get
an antilock braking system or traditional brakes, power or rack-and-pinion
steering, 4-, 6-, or 8-cylinder engines. Either way, you will still press the
break pedal to stop, turn
the steering wheel to change
direction, and press the accelerator when you want to move. The same interface
can be used to control a number of different implementations. As you can see,
it is through the application of encapsulation, inheritance, and polymorphism
that the individual parts are transformed into the object known as a car. The
same is also true of computer programs. By the application of object-oriented principles,
the various parts of a complex program can be brought together to form
a cohesive, robust, maintainable
whole. As mentioned at the start of this
section, every Java program is object-oriented. Or, put more precisely, every
Java program involves encapsulation, inheritance, and
polymorphism. Although the short
example programs shown in the rest of this chapter and in the next few chapters
may not seem to exhibit all of these features, they are nevertheless present.
As you will see, many of the features supplied by Java are part of its built-in
class libraries, which do make extensive use of encapsulation, inheritance, and
polymorphism.
thanks for very much
ReplyDeleteafter doing my comment in this blog i noticed this your blog that is copied java complete reference book you may get a problem for doing this from google
ReplyDeleteVery informative post. scala training
ReplyDeletesccm training