Q. What is Inheritance?
Ans :- Classes inherit
state and behavior from their superclass. Inheritance provides a very
helpful concept of code reusability.
Generally
speaking, objects are defined in terms of classes. You know a lot about an
object by knowing its class. If I told you it was a bicycle, you would know
that it had two wheels, handle bars and pedals.
Object-oriented
systems take this a step further and allow classes to be defined in terms of
other classes. For example, mountain bikes, racing bikes and tandems are all
different kinds of bicycles. In object-oriented terminology, mountain bikes,
racing bikes and tandems are all subclasses of the bicycle class.
Similarly, the bicycle class is the superclass of mountain bikes,
racing bikes and tandems.
Each subclass inherits state
(in the form of variable declarations) from the superclass. Mountain bikes,
racing bikes and tandems share some states: cadence, speed and the like. Also,
each subclass inherits methods from the superclass. Mountain bikes, racing
bikes and tandems share some behaviors: braking and changing pedaling speed.
However, subclasses are not limited to the state and behaviors provided to them
by their superclass. Subclasses can add variables and methods to the ones they
inherit from the superclass. Tandem bicycles have two seats and two sets of
handle bars; some mountain bikes have an extra set of gears with a lower gear
ratio. Subclasses can also override inherited methods and provide specialized
implementations for those methods. For example, if you had a mountain bike with
an extra set of gears, you would override the "change gears" method
so that the rider could actually use those new gears.
You are limited
to just one layer of inheritance. The inheritance tree, or class hierarchy, can
be as deep as needed. Methods and variables are inherited down through the
levels. The further down in the hierarchy a class appears, the more specialized
is its behavior.
The Benefits of Inheritance
·
Subclasses
provide specialized behaviors from the basis of common elements provided by the
superclass. Through the use of inheritance, programmers can reuse the code in
the superclass many times.
·
Programmers
can implement superclasses that define "generic" behaviors (called abstract
classes). The essence of the superclass is defined and may be partially
implemented but much of the class is left undefined and unimplemented. Other
programmers fill in the details with specialized subclasses.
Q. Explain the Term Abstraction.
Ans:- In
java, classes are used to categorize data in order to model real life systems.
Abstraction is this process of categorizing data.
Consider
that a person is looking for a frame in an optician’s shop. To be able to
choose a frame from amongst the various types of frames available, he has to
first identify the attributes he is looking for (say, he looks for a frame of
golden color with photo-chromatic lens). Once he has identified the attributes,
he has with him a category or class of frames of golden color with
photo-chromatic lens from which he can readily pick any one frame. Similarly,
to model any real life object in OOPS, an “object”
has to be instantiated from a specific “class”.
This basic process of forming a class is
known as abstraction. In the above
example, frames of golden color with photo-chromatic lens become a specific
class of frames and one such frame represents an object of that particular
class.
Q. Define the Polymorphism and benefits of OOP's.
Ans:- Polymorphism
may be defined as the ability of related objects to respond to the same message
with different, but appropriate, actions.
Example:
Each
shape class has its own version of the draw function that provides the
appropriate action for an object of that class. A rectangle object’s draw
function displays a rectangle, an Ellipse draw function displays an ellipse,
and so on.
Polymorphism
is another important OOP concept. Polymorphism means the ability to take more
than one form. For example, an operation may exhibit different behavior in
different instances. The behavior depends upon the types of data used in the
operation. For example, consider the operation of addition. For two numbers,
the operation will generate a sum. If the operands are strings, then the
operation would produce a third string by concatenation. Fig 1.9 illustrates
that a single function name can be used to handle different number types of
arguments. This is something similar to a particular word having several
different meanings depending on the context.
Polymorphism
plays an important role in allowing objects having different internal
structures to share the same external interface. This means that a general
class of operation may be accessed in the same manner even though specific actions
associated with each operation may differ. Polymorphism is extensively used in
implementing inheritance.
Dynamic Binding
·
Binding
refers to the linking of a procedure call to the code to be executed in
response to the call.
·
Dynamic
binding means that the code associated with a given procedure call is not known
until the time of the call at run-time.
·
It
is associated with polymorphism and inheritance.
Consider
the procedure “draw” in fig 1.8. By inheritance, every object will have this
procedure. Its algorithm is, however, unique to each object and so the draw
procedure will be redefined in each class that defines the object. At run-time,
the code matching the object, under current reference, will be called.
Overloading
In
general terms overloading means more than one job done by a single entity. For
example a man at a time can be a Father, can be a brother, can be a son and so
on. The single person bearing all the relationship. In Object Oriented
Programming if a method depending on some information does different job at
different times that method is overloaded
.Overloading is nothing but a kind of polymorphism.
Overriding
Inheritance
is a mechanism of inheriting the traits of parents but some times some
properties should be modified according to the need like a son inherits legs
from his parents but his walking style is different. This is Overriding. Using this concept derived
class can modify the features which it inherits from it’s base class. It is
again a kind of polymorphism and very important in terms of dynamic decisions.
Benefits of OOP
Through
inheritance, we can eliminate redundant code and extend the use of existing
classes.
We
can build programs from the standard working modules, which communicate with
one another, rather than having to start writing the code from scratch. This
leads to saving of development time and higher productivity.
The
principle of data hiding helps the programmer to build secure programs that
cannot be invaded by code in other parts of the program.
It
is possible to have multiple instances of an object to co-exist without any
interference.
It
is possible to map objects in the problem domain to corresponding objects in
the program.
It
is easy to partition the work in a project based on objects.
The
data-centered design approach enables us to capture more details of a model in
implementable form.
Object-oriented
systems can be easily upgraded from small to large systems.
Message
passing techniques for communication between objects makes the interface
descriptions with external systems much simpler.
Software
complexity can be easily managed.
No comments:
Post a Comment