I am a little bit familiar with the difference between Abstract and Interface classes but What do you think is the meaning of the sentence below?
An i
Well the statment is technically incorrect what they are refering to is that all variables on an interface must be declared static whereas abstract classes have no such limitation.
The statement is incorrect since Java does not have constants only final
which are still modifiable and thus not constant.
constants - static, not changing (static final
)
fields - instance-specific, changing
Since interfaces cannot be instantiated, you can only have static and not-changing properties. On the other hand abstract classes can be be extended, and their subclasses - instantiated, so you can have instance-specific, changing properties.
An interface can only define constants while abstract class can have fields.
your field from interface is by implicitly public
, static
, final
which isn't case with abstract class
Additional to Jigar Joshi answer. We can implements any number of interface but we can extend only one abstract class.