객체 지향 프로그래밍 Fundamnetal Principles of OOP

객체 지향 프로그래밍 (Object Oriented Programming)
Fundamnetal Principles of OOP

Ecapsulation 캡슐화
- 은닉화 (hiding) 특징 : 내부 데이터나 내부 구현이 외부로 노출되지 않도록 만드는 것. -> 굳이 불필요한 데이터를 외부로 노출시킬 필요가 있을까>?
Abstraction 추상화
- 노출을 방지하는 것. 예를 들여, 보안상 외부로 노출이 되어야 하지 않는 것을 숨기는 것. Ecapsulation는 불필요한 데이터를 숨기는 것 그리고 Abstraction 보안 문제로 인해 노출을 막는 것
Inheritance 상속
- 부모 클래스의 특징을 자식 클래스가 물려받는 것.
- 자식에 새로운 property 또는 method을 추가해도, 부모에게 영향을 주지 않는 것.
이미지 참조: 코드스테이츠

Polymorphism 다형성
- 자식이 부모에게 물려받은 property/method를 굳이 똑같이 사용할 필요없이, 수정이 가능함. 그리고 새로운 자식을 만들어도 서로 다른 특징을 가지고 있어서 자식끼리도 다른 property/method을 사용할 수 있음.