Абстрактный класс в Java может содержать как абстрактные методы, так и реализованные методы, в то время как интерфейс может содержать только абстрактные методы, их сигнатуры, но без их реализации. Класс может наследовать только один абстрактный класс, но реализовать несколько интерфейсов. Кроме того, абстрактный класс может иметь переменные экземпляра, в то время как интерфейс может содержать только константы.