(1) what is different between interface and abstract class.?

(2) why do need interface and abstract class..?

(3) why do need constructor in java..?