difference between class and interface