What is the difference between Interface and Abstract Class?