OOP의 특징으로는 캡슐화, 상속, 추상화, 다형성이 있다. 이 특징들은 코드를 단순화하고, 재사용성을 높인다.
변수와 메소드를 하나의 단위로 묶는 것이고, 은닉화 특징으로 내부 데이터와 내부 동작들을 노출되지 않도록 만든다. 최소한의 동작들만 노출 시킨다. 노출된 메서드에는 영향을 끼치치 않고, class 내부 메소드의 구현만 변경할 수 있다.
캡슐화와 비슷하다. 캡슐화는 코드에 포커스를 주었고, 추상화는 인터페이스에 포커스를 주었다.
본질이 같은 class라면 굳이 재구현할 필요없이 부모에게 상속받아 추가적으로 속성과 메소드를 추가해서 사용할 수 있다.
용어
기본클래스(Base Class) = 부모
파생클래스(Derive Class) = 자식
하나의 메소드나 클래스가 다양한 방법으로 동작하게 한다.
프로토타입은(prototype
)은 원형 객체를 의미하며, 객체가 프로토타입 링크(__proto__
)를 참조하여 프로토타입 체인을 할 수 있다.
장점으로는 공통된 메서드나 속성을 동일한 메모리 영역으로 지정하여 참조할 수 있게 함으로써 메모리 측면에서 좋다.