Inheritance, polymorphism & typing rules in Java – revision SOFTENG 251 Object Oriented Software Construction or: Everything you wanted to know about OOP.