Introduction
  • Introduction
Inheritance
  • 2.1291 - reference type determines the data you can access.
  • 2.970 - diagrams discussing overriding, polymorphism, reference vs object type.
  • 2.1086 - diagrams explaining covariant returns and reference vs. object types.
  • 2.996 - the reference type determines the methods you can call (diagrams).
  • 2.1150 - interface methods must be public and abstract (if no method body code).
  • 2.1072 - ambiguous fields only become an issue if you use them.
  • 2.1399 - getClass() returns the class of the object that the reference refers to
  • 2.1320 - reference type determines the data accessed (static or non-static).
  • 2.1056 - final classes cannot be subclassed.
  • 2.1019 - overriding compared to overloading
  • 2.1015 - trying to access private data defined higher up the inheritance tree.
  • 2.1144 - interface fields are implicitly public, static and final.
  • 2.1476 - recognizing valid interface methods.
  • 2.1149 - assignments that fail to compile or generate ClassCastExceptions.
  • 2.1481 - extending interfaces
  • 2.931 - static methods cant be overridden by non-static methods (and vice versa)
  • 2.900 - interfaces can extend from multiple interfaces.
  • 2.1009 - a reference to a static field initialises the class that declares it.
  • 2.1231 - abstract classes can implement interfaces without providing any methods
  • 2.839 - overriding a method that defines an exception in its method signature.
Bonus Content
  • Bonus Lecture