Abstract classes in Java can have both abstract and non-abstract methods. They cannot be instantiated and must be extended. Abstract methods do not have a method body. Interfaces in Java provide full abstraction and contain only abstract method declarations. Classes implement interfaces to inherit their methods. Both abstract classes and interfaces allow for abstraction and multiple inheritance in Java.