Comúnidad
1. Ninguno puede ser instanciado
2. Las subclases de la clase de implementación o clase abstracta en la interfaz solo se pueden instanciar después de implementar el método en la interfaz o clase abstracta
La diferencia:
1. La interfaz solo tiene la definición del método: después de JDK1.8, se puede definir el cuerpo del método predeterminado y se puede definir o implementar la clase abstracta.
2. Las palabras clave de implementación y herencia son diferentes. Java solo admite herencia simple pero admite implementaciones múltiples
3. La interfaz enfatiza la realización de funciones específicas, lo cual es conveniente para la adición y eliminación de la secuencia posterior. La clase abstracta enfatiza la relación de pertenencia y tiende a la clase pública, que no es adecuada para modificación
4. Las variables miembro de la interfaz tienen el valor predeterminado de público estático final y deben asignarse valores iniciales. Todos los métodos miembros son públicos y abstractos. Las variables miembro en las clases abstractas tienen el valor predeterminado predeterminado, que puede redefinirse o asignarse en subclases. Modificado por privado, estático, sincronizado, nativo.