객체지향은 4가지 특징이 있다.
- 캡슐화
- 추상화
- 상속화
- 다형성
- 캡슐화는 외부에서 데이터 또는 기능에 직접 접근을 못하도록 하는 개념이다.
만약 직접 접근을 할 수 있다면 예상치 못한 문제가 발생될 확률이 높아지고 유지보수도 어려워질 것이다.
- 추상화는 공통적인 속성과 기능들을 정의하는 것을 말한다.
추상화를 하게되면 중복코드가 줄어들며 코드의 재사용성이 증가하고 코드가 깔끔해진다.
자바에서는 추상화를 인터페이스와 추상클래스로 구현할 수 있다.
추상 클래스는 추상 메소드뿐만 아니라 생성자, 필드, 일반 메소드도 포함할 수 있지만
인터페이스는 오로지 추상 메소드와 상수만을 포함할 수 있다.
인터페이스를 사용하는 이유는 추상 클래스는 다중 상속을 지원하지 않지만 인터페이스는 다중 상속을 지원한다.
그리고 추상 클래스와 인터페이스를 상속 받게 되면 오버라이딩을 반드시 해줘야하는 강제성이 부여된다.
보통 추상 클래스와 인터페이스를 나누어 설명할때
추상클래스는 IS - A "~이다".
인터페이스는 HAS - A "~을 할 수 있는".
으로 설명한다. 추상 클래스의 단일 상속과 인터페이스의 다중 상속지원으로 의미를 이해할 수 있다.
- 상속화는 부모 클래스에 정의된 변수 및 메서드를 자식 클래스가 상속받아 사용할 수 있게 되는 것이다.
상속화를 사용하는 이유는 코드를 재사용하여 중복코드를 줄이기 위한 것이다.
위에서 알아본 추상화를 사용하는것이 상속이다.
- 다형성은 여러 형태를 나타낼 수 있음을 의미한다.
예를 들면 같은 이름을 가지고 같은 형태인 메서드를 2개이상 만들 수 없지만 리턴 타입 또는 파라미터 타입을 다르게하면 2개 이상 생성할 수 있다.이를 다형성이라 하며 다형성 또한 코드의 재사용성과 유연성 그리고 가독성을 위하여 사용된다.
'프로그래밍 > etc' 카테고리의 다른 글
OAuth2.0 플로우 정리 (0) | 2024.09.04 |
---|---|
Access Token과 Refresh Token (0) | 2024.03.21 |
알고리즘 순서도를 작성하는 습관을 들이자 (0) | 2024.01.07 |