Polymorphism, Interfaces and Abstraction, Generics, Iterators and Comparators, Enums and Attributes, Objects Communication and Events, Reflection, Unit Testing, Open/Closed and Liskov Principle.