Have you considered using a Java "interface" instead:
And yeah, you can certainly do "abstract classes" in Java. In C++, as "dmail" pointed out, you define one or more of the functions (virtual functions, of course) as "=0". In Java, on the other hand, you simply apply the "abstract" keyword to the entire class:
But 90% of the time, "interface" is really what you want. Of the remaining 10%, usually you'll *still* use an "interface", but then define some concrete "helper class" (one that implements your interface), that will provide default functionality, and that your users can subclass.