1.캡슐화
2.추상화
3.상속
4.다형성
캡슐화란 객체가 필드 , 메소드를 하나로 묶고 public이나 private등의 접근 제한자를 사용해 실제 구현 내용은 외부에 감추는 것을 말한다.
외부객체는 객체 내부의 구조를 알지 못하며, 객체가 의도적으로 노출해서 제공하는 필드와 메소드만 사용할 수 있다.
공통의 속성이나 기능을 묶어 이름을 붙이는 것, 객체 지향 관점에 클래스를 정의하는 것을 추상화 라고 할 수 있다.
불필요한 부분을 생략하고 객체의 속성 중 가장 중요한 것에만 중점을 두어 개략화 하는 것
즉 모델화 하는 것으로 데이터의 공통된 성질을 추출하여 슈퍼 클래스를 선정하는 개념이다.
함수가 커진다 -> 추상화를 제대로 하지 않은 것이다.
함수내 블록화된 코드를 묶어서 새로운 함수로 만든다. -> 그 블록에 대한 지식을 대표적으로 표현하기 위한 추상화
https://choi3950.tistory.com/25
상속은 부모 클래스로부터 공통된 변수와 함수, 인터페이스를 그대로 물려받는것을 말한다. 추상화를 사용해 각 클래스의 공통된부분을 묶었다면, 부모 class를 상속받아서 거기에 포함된 데이터를 그대로 사용할 수 있다. 추상화와 밀접한 관계가 있다.
다형성은 같은 종류의 클래스가 하나의 메시지에 대해 서로 다른 행동을 하는 것을 말합니다. 부모 클래스의 함수를 다른자식클래스 2개가 상속받았을 때, 각자 필요한 용도로 변형하여 사용할 수 있다. 오버라이딩과 오버로딩의 형태로 다형성을 활용할 수 있다.