Q:

Abstract classes and interfaces in Java

Possible Duplicate:
Use of Java [Interfaces / Abstract classes] 

Being new to java, what are the differences between using an abstract class in your project and an interface ?

A:

You can only inherit from one class at a time, using the "extends" keyword, but you can implement as many interfaces as you want, using the "implements" keyword.
Also, abstract classes can have both abstract and concrete (implemented) methods, as well as variables.

A:

If you look at it less technically but how you can or should use it:
The main Advantage of an interface is that a class can implement as many interfaces as you like. In Contrast to that one class can only extend one single other class. (There is no multiple inheritance in java).
With using interfaces you can add single "Capabilities" to your classes. Therefor you will often read that interfaces names ends with "able". like "Serializable" or "Parceable" or something like that.
An Abstract class can be a general class which if forced to be extended. Like a "Vehicle" for example. You can't use a "Vehicle" itsself because there is no thing existing which is only a "Vehicle". So you have to implement a class extending that class which could be Cars or Boats ....

