views:

84

answers:

3

If I have three classes

class A

class B extends A

class C extends A

Would using abstract classes or interfaces give me any type of errors or affect the way I implement the program?

+1  A: 

You should generally prefer interfaces whenever you can. Java's lack of multiple inheritance quickly becomes a limiting factor if you use classes for that.

Tronic
Java allows multiple inheritance for interfaces and if you use AspectJ you can add implementations of methods directly to interfaces. Put both together and you get: Multiple implementation inheritance.
Willi
+1  A: 

Yes. Abstract classes trade a shorter way of reusing implementation for the flexibility to provide multiple interfaces to the same object.

Unless you're playing code-golf, choosing the flexibility of interfaces is usually the better option.

Pete Kirkham
+4  A: 

Unless you need to share implementation, favor interfaces.

If you need to share implementation, think carefully if an abstract class is the right way to accomplish this.

Inheritance is a powerful tool, but can easily create an unmaintainable mess (I have been guilty here).

But to answer your question - no, there is nothing inherent in this setup that would cause an "error".

jayray