What's an object? What's the difference between object oriented and procedural programming?
What's a constructor? Destructor? How are they typically used?
Explain public vs. private vs. protected.
What is inheritance?
What's an abstract class? What about an interface? What's the difference?
What does it mean to override a method? Advanced question: how can you prevent a method from being overridden (e.g. the keyword final
)?
What does it mean to overload a method? (Note that not all OO languages support overloading)
What's an instance method/property vs a class (or static) method/property?
What does it mean for a set of objects to be 'loosely coupled' vs. 'tightly coupled'? What are the advantages & disadvantages of each?