1. Encapsulation (캡슐화)
- 감기약 캡슐 안에 다양한 성분이 들어있는 것
- 서로 관련이 있는 데이터와 함수를 묶어 object 안에 담아두고, 외부에서 보일 필요가 없는 데이터를 잘 숨겨 놓음으로써 캡슐화를 할 수 있음
2. Abstraction (추상화)
- 커피머신이 어떻게 동작하는지 다 이해하지 않아도, 버튼만 누르면 커피머신을 작동시킬 수 있는 것
- 추상화를 통해서 외부에서는 내부에서 어떻게 구현되어 있는지, 얼마나 복잡한지 신경쓰지 않고 지정되어 외부에서만 보이는 interface 함수를 이용해서 object를 사용할 수 있음
3. Inheritance (상속)
- 잘 만들어진 커피머신 class를 상속받아 다른 종류의 커피머신 class를 만드는 것
- 부모 class와 자식 class의 관계를 가짐
4. Polimorphism (다형성)
- 상속을 통해서 만들어진 자식 class는 부모 class에서 정의된 함수를 공통적으로 사용할 수 있는 것