4 principles of OOP
- encapsulation
access or manipulation to the attribute should be done by method
- abstraction
Abstraction allows the program to be worked on incrementally and prevents it from becoming entangled and complex
Determine specific points of contact that can act as an interface between classes, and only worry about the implementation when coding it
- Inheritance
class hierarchy
access modifiers
public, private, protected
- polymorphism
dynamic polymorphism occurs during the runtime of the program
static polymorphism occurs during compile-time - overloading (methods of the same name but different number of parameters, different types of parameters, different order of parameters)