Abstract class: Abstract class comes under partial abstraction. Abstract classes can maintain abstract methods and non abstract methods. In abstract classes, we can create the variables. In abstract classes, we can use any access specifier. By using 'extends' keyword we can access the abstract class features from derived class. Multiple inheritance is not possible. Interface: Interface comes under fully abstraction. Interfaces can maintain only abstract methods. In interfaces, we can't create the variables. In interface, we can use only public access specifier. By using 'implement' keyword we can get interface from derived class. By using interfaces multiple inheritance is possible.