Java absolutly support multiple inheritence in terms of
Interface.We can extend one class only to avoid ambiguity
problem.In interface we have to define the functions.So we
don't get any ambiguity.In c++ it is big problem with
multiple inheritence but in JAVA this thing is improved by
introducing Interfaces
Java supports multiple inheritence indirectly through the
use of interface. In case we are able to extend more than
one class then there would be a confusion of which method to
process in case both classes have same method name(Same
method signature also).
In case of using interfaces to support multiple inheritance
we escape this problem as we define the methods that are
needed only.
Java was designed without multiple inheritance.Java
interfaces solves most problems that are commonly solved
using multiple inheritance just simulates inheritance .
Kalaivani , Kishore don't misguide others unless your
absolute with your answers.
To say why java doesn't support inheritance directly like c++
should be the diamond problem faced by c++,
(Diamond problem is an ambiguity that arises when two
classes B and C inherit from A, and class D inherits from
both B and C. If a method in D calls a method defined in A
(and does not override it), and B and C have overridden that
method differently, then via which class does it inherit: B,
or C?)
Basically multiple inheritance is useful only in
polymorphism, so in java it can be done by interfaces, so
that java doesn't need to provide multiple inheritance
using extends keyword.
java does not supports multiple inheritence at all.but it
supports similar feature interface.Which removes the
ambiguity problem(Deadly Diamonds Of Death) and complexity
of multiple inheritence.Although interface is not the part
of inheritence because inheirtence is achieved in java
through extends keyword only.Interface is the part of
aggregation not inheritence.
Multiple inheritance in Java is not allowed directly simply
because Java has another concept of Interfaces that replace
the ambiguity of this problem in other OOP languages such
as C++.
Multiple inheritance means derive class from multiple
classes but java can't extend multiple classes. it can
extend one class but multiple interfaces. so create
multiple interfaces n then implement it.
Java have such fzacility to avoid ambiguty.
Thank u
The reasons for omitting multiple inheritance from the Java
language mostly stem from the "simple, object oriented, and
familiar" goal. As a simple language, Java's creators
wanted a language that most developers could grasp without
extensive training. To that end, they worked to make the
language as similar to C++ as possible (familiar) without
carrying over C++'s unnecessary complexity (simple).
In the designers' opinion, multiple inheritance causes more
problems and confusion than it solves. So they cut multiple
inheritance from the language (just as they cut operator
overloading). The designers' extensive C++ experience
taught them that multiple inheritance just wasn't worth the
headache.
Instead, Java's designers chose to allow multiple interface
inheritance through the use of interfaces, an idea borrowed
from Objective C's protocols. Multiple interface
inheritance allows an object to inherit many different
method signatures with the caveat that the inheriting
object must implement those inherited methods. Multiple
interface inheritance still allows an object to inherit
methods and to behave polymorphically on those methods. The
inheriting object just doesn't get an implementation free
ride
multiple inheritance means a sub class which is derived from
two base classes.
assume that the two base classes has same methods with same
signature.
for eg we create an object for the base class.
now call the any one method of base class with sub class object.
now which method is going to execute?
To avoid this confusion java doesnot support multiple
inheritance.
java does not support multiple inheritance because in java
we can develop web based application
suppose we r trying 2 download a file that has extended
many classes if 995 of classes get downloaded and even 1%
gives error in downloading then there is no use of
downloading
that's why java avoid such comlexities of interdependency
so it avoid multiple inheritance
Java support method overriding means both superclass and
subclass can have the same method name and number of
arguments.If java support multiple inheritance, ambiguity
problem will arise if two or more superclass have the same
method name, and the super keyword will not be able to
decide which superclass to call.
TO remove such ambiguity problem java doen not support
multiple inheritance through extend but it support it
through interface.