constants - static, not changing ( static final )
fields - instance specific, change
Since interfaces cannot be created, you can only have static and immutable properties. On the other hand, abstract classes can be extended, and their subclasses are instances, so you can have instance-specific changing properties.
Bozho source share