The principles of object-oriented programming are:
Encapsulation (hiding interface from implementation)
Inheritance (classes of objects can inherit functionality from parent classes)
Polymorphism (objects respond to methods based on their runtime-type).