Abstraction And Interface Difference In Java