In abstract class concrete methods are also there. concrete
methods are the one which has implementation. so in future
if any programmer wants to give concrete methods can use
abstract class not interface.
In abstract class for methods and variables
public,private,protected modifier can be use. but in
interface public and abstract are permitted.
if all the methods are abstract in abstract class,then the
only difference left is,,,,
interface can have static and final variables with public
and abstract access modifier only ,,,while abstract class
can have any type of variable with any type of access
modifiers
Multiple inheritance is possible only through interface,not
with abstract class. So if u have an interface we can go
implementing multiple interfaces rather than extending a
single abstract class.
Methods in the abstract class can be accessed only through
a class hierarchy i.e through inheritance.
But methods in the interface can be accessed anywhere i.e
across the class hierarchy.(without inheritance).
i am not agree with the answer provided by prasad bhagwat
as already mention inthe question that all the method of
abtract class are declared as abstract and as per rules of
abstract class impletation you need to provide
implemenation of all abstract methods present in abstract
class unitl & unlesss you declared child class also as an
abstract class.