객체는 대부분 다른 객체와 관계를 맺고 있다. 관계의 종류는 집합 관계, 사용 관계, 상속 관계가 있다.
부품을 조합해서 완성품이 되는 관계이다.
머리, 팔, 몸통, 다리를 합치면 인체가 된다.
한 객체가 다른 객체와 상호작용하는 것을 말한다.
사람은 라이터를 사용한다.
라이터와 사람은 사용 관계이다.
사람은 필요할 때 라이터를 켠다 등의 메소드를 호출한다.
상위(부모) 객체를 기반으로 하위(자식) 객체를 생성하는 관계를 말한다. 일반적으로 상위 객체는 종류(인터페이스)이며, 하위 객체는 구체적인 사물(구현체)에 해당한다.
객체지향 프로그래밍(OOP)은 만들고자 하는 완성품인 객체를 모델링하고, 집합 관계에 있는 부품 객체와 사용 관계에 있는 객체를 하나씩 설계한 후 조립하는 방식으로 프로그램을 개발하는 기법이다.
객체의 내부 구조를 알지 못하게 하고, 객체가 제공하는 필드와 메소드만 이용할 수 있게 하는 것이다. 외부의 잘못된 사용을 예방한다.
상위 객체가 필드와 메소드를 하위 객체에게 물려주는 것을 말한다. 공통적인 부분을 추상화하여 상위 객체로 만들면, 하위 객체에서는 반복된 코드가 줄어든다. 또 코드를 변경 시에도 상위의 코드만 변경하면 하위에 자동으로 적용되어 용이하다.