- Objects
- Inheritance
- Designing and Writing an OO program
- Class fields, methods, visibility
- Constructors, initialisers
- Static fields and methods
- Subclasses and inheritance, overriding
- Final keyword
- Polymorphism
- Abstract Classes and Interfaces
- The Object class
- The Class class
- Inner Classes, Anonymous Classes, and Lambda Expressions
- Packages and the New Java Module System, JAR files
Designing classes with UML