Inheritance in JAVA Programming Language:
Inheritance is the process by
which one object acquires the properties of another object. This is important
because it supports the concept of hierarchical classification. As mentioned
earlier, most knowledge is made manageable by hierarchical (that is, top-down) classifications.
For example, a Golden Retriever is part of the classification dog, which in
turn is part of the mammal class, which is under the larger class animal. Without
the use of hierarchies, each object would need to define all of its
characteristics explicitly. However, by use of inheritance, an object need only
define those qualities that make it unique within its class. It can inherit its
general attributes from its parent. Thus, it is the inheritance mechanism that
makes it possible for one object to be a specific instance of a more general
case. Let’s take a closer look at this process.
Most people naturally view the
world as made up of objects that are related to each other in a hierarchical
way, such as animals, mammals, and dogs. If you wanted to describe animals in
an abstract way, you would say they have some attributes, such as size, intelligence,
and type of skeletal system. Animals also have certain behavioral aspects; they
eat, breathe, and sleep. This description of attributes and behavior is the
class definition for animals.
If you wanted to describe a more
specific class of animals, such as mammals, they would have more specific
attributes, such as type of teeth, and mammary glands. This is known as a
subclass of animals, where animals are referred to as mammals’ superclass. Since
mammals are simply more precisely specified animals, they inherit all of the attributes
from animals. A deeply inherited subclass inherits all of the attributes from each
of its ancestors in the class hierarchy.
Inheritance interacts with
encapsulation as well. If a given class encapsulates some attributes, then any
subclass will have the same attributes plus any that it adds as part of its
specialization (see Figure 2-2). This is a key concept which lets
object-oriented programs grow in complexity linearly rather than geometrically.
A new subclass inherits all of the attributes of all of its ancestors. It does
not have unpredictable interactions with the majority of the rest of the code
in the system.
Comments
Post a Comment
Give your valuable Comment...