read the code

understand the Interface and Abstract