객체지향을 공부하면서 느낀점은 객체 지향은 와플기계같다고 생각했다. 딸기 와플, 바닐라 와플 등등 다양한 와플을 만들때, 결국 근본은 와플이니 하나의 정해진 틀(class)은 만들어서 그걸 바탕으로 다양한 종류의 와플(instance object)를 만드는 것이다.
객체지향 프로그래밍(OOP, Object-oriented programming)은 4가지 중요한 특징이 있다.
이렇게 4가지이다.
데이터와 기능을 하나의 단위로 묶는것 (약을 캡슐 하나로 만드는 것)
은닉은 구현은 숨기고, 동작은 노출시키는 것 (안에 있는 것은 정확히 몰라도, 약의 효과는 아는 것)
등등으로 실제 캡슐과 비슷하다.
기계식 시계는 상상 이상으로 복잡하게 만들어져 있다. 하지만 우리가 보는 시계의 겉면은 시, 분, 초로 아주 단순하고 보면 바로 현재 시간을 알 수 있다.
캡슐화와 추상화가 헷깔릴 수 있는데, 캡슐화는 코드나 데이터의 은닉을 추상화는 클래스를 사용하는 사람에 대한 단순함을 추구한다.
부모님의 돈이 자녀에게 가면서 그대로 받는 것 처럼 생각하면 되는데, 더 정확히 말해보자면
"기본 클래스(base class)의 특징을 파생 클래스(derive class)가 상속받는 것이다."
다양한 인종들이 지구에 살고 있지만, 본질은 같은 사람이라는 것 이다.