11 Programming abstractly using interfaces
|   Exam objectives covered in this chapter  |  
      What you need to know  |  
   
|   [10.1] Create and implement interfaces  |  
      How to create interfaces, extend and implement them. The role of interfaces in implementing polymorphism. The types of methods that can be defined in an interface – abstract, static and default. Implicit properties of constants and methods defined in an interface. Challenges with inheriting multiple interfaces. Implications of modifying methods of an interface – their signature or implementations of default methods.  |  
   
|   [10.2] Distinguish class inheritance from interface inheritance including abstract classes  |  
      Differences and similarities in inheriting abstract or concrete classes and implementing interfaces.  |  
   
|   [10.3] Declare and use List and ArrayList instances  |  
      How to declare, create, and use List and ArrayList. Advantages of using an ArrayList over arrays. Use of methods that add, modify, and delete elements of an ArrayList.  |  
   
|   [10.4] Understanding lambda expressions  |  
      Syntax and usage of lambda expressions. Usage of Predicate class.  |