이제 객체 지향의 목적과 특성은 무엇인지 알아보자.
객체 지향의 목적을 알기 위해서는 우선 특성에 대해서 얘기해보겠다.
객체 지향의 특성으로 크게 3가지로 예를 들 수 있다. 첫 번째는 자료 추상화(Data Abstraction), 두 번째는 상속성(Inheritance), 마지막 세 번째는 다형성(Polymorphism) 이다.
각 특성을 정리하면 아래와 같다.
- 자료 추상화 (Data Abstraction)
- 자료 구조와 함께 그에 해당하는 연산들을 정의
- 기본형 처럼 프로그래머가 사용
- 재 사용할 수 있는 소프트웨어 부품화
- 정보 은닉화
- 언어의 확장성 증가
- 상속성 (Inheritance)
- Super Class 의 모든 속성이 Sub Class 로 전달되는 기능
- 클래스의 재 사용성을 증가 시킨다.
- 다형성 (Polymorphism)
- 여러 개의 형태를 갖는다.
- 다형성은 두 가지가 적용된 형태로 볼 수 있는데 오버로딩과 오버라이딩이다.
- 오버로딩은 다른 용도로 다시 중복 정의하여 사용 -> 추상 클래스의 추상 메소드를 사용
- 오버라이딩은 상위 클래스에서 정의된 함수를 무시하고 하위 클래스에서 재 정의해서 사용 -> 추상 클래스 뿐만 아니라 일반 클래스의 메소드를 사용
객체 지향의 특성에 대해서 알아봤다. 이를 통해서 객체 지향 프로그램의 목적은 아래와 같다.
- 구현된 코드를 다른 곳에서 재 사용할 수 있도록 한다.
- 추상화를 통하여 외부에서는 구현된 코드의 정보를 숨기도록 한다.
- 개발 보다 유지 보수에 치중을 두어서 프로그래밍 한다.