1. 상속 (Inheritance)
- 자식 클래스가 부모 클래스의 변수·메소드 등을 사용할 수 있다.
- 자식 클래스는 부모 클래스에 속하기 때문에 is a 관계에 속한다.
- 하위 클래스로 갈수록 객체는 구체화된다.
- 장점
(1) 재사용성 향상 : 필요한 속성 및 메소드를 모두 다시 정의하는 것이 아니라 일부 상속받아서 사용 가능
(2) 확장성 및 유지보수성 향상 : 객체에서 어느 정도 일관성 확보 가능
2. 다형성(Polymorphism)
- 같은 메소드가 객체에 따라 다른 기능을 수행할 수 있음
- 오버라이딩 : 부모클래스의 메소드와 같은 이름에 같은 매개변수 사용하면서 내부 소스 재정의
- 오버로딩 : 같은 이름 함수를 여러 개 정의 후 매개변수를 다르게 설정한 뒤 경우에 따라서 원하는 메소드를 호출
3. 캡슐화(Encapsulation)
- 실제 구현하는 부분이 외부에 드러나지 않도록 한다.
- 데이터는 해당 객체의 메소드를 통해서 접근하거나 변경할 수 있다.
- 메소드는 해당 객체 안에 있는 속성만을 처리해야 한다.
- 장점
(1) 모듈성·응집도 상승 : 객체의 모든 내용(속성, 메소드)이 캡슐 형태로 제공
(2) 유비보수 효율성 향상
(3) 재사용성 향상 : 객체의 메소드는 해당 객체에만 영향을 끼치며 전체 프로그램에는 영향을 끼치지 않기 때문
4. 추상화 (Absctraction)
- 객체들의 공통적인 부분들을 도출해서 재조합하는 과정
- 클래스를 정의하는 것이 추상화에 해당한다.
'CS 공부' 카테고리의 다른 글
[Infra] Scale up & Scale out (0) | 2022.02.23 |
---|---|
MSA (MicroService Architecture) vs Monolithic Architecture (0) | 2022.02.23 |
2021-09-22 실시간 네트워킹 (HTTP vs Websocket) (0) | 2021.09.23 |
2021-09-08 CS 공부 2일차 (0) | 2021.09.08 |
2021-09-07 CS 공부 1일차 (0) | 2021.09.07 |