+ 1
Interfaces are a contract that tell which behaviours must implement subclasses and they can implement how want.
Abstract classes are something close to interfaces but they are used when you want share predefined behaviours and data
See here for futher details https://www.geeksforgeeks.org/difference-between-abstract-class-and-interface-in-java/