Infact we frequently do it. ie Categorize the global constants and
define them in various interface; then implement those interfaces
for the classes that need the respective constants. In this way,
the interfaces do not need to have any empty method.
One possible difference is that a class can extend only one abstract
classes whereas it can implement more than one interface. ie Java
doesnt support multiple inheritance (C++ does it by allowing a class
to extend more than one class)