So Im about to take this interview for a java position. I wanted to know what is a difference between abstract classes and interface?