Tip : Avoid abstract classes and use interfaces
Disagree.
Abstract classes can be very useful. This has been discussed before, and check the links given earlier first.
If you have behaviour, but don't know how it is to be implemented, you are looking at an interface. Particularly if you are already inheriting from another class; you can't inherit from two classes in
Java. Interfaces have a selection of methods, but all abstract, so they will be implemented differently every time they are used.
If you have entities which can be put into a very general title, you are better off using an abstract class. If you have a method which will be the same in (at least a large majority of) the subclasses, write the method.
If you have a method which will eb different in most cases, use an abstract method.