객체지향 프로그래밍의 장점 중 하나는 코드를 재사용하기가 용이하다는 것이다. 객체지향에서 코드는 일반적으로 클래스 안에 작성되기 때문에 클래스를 재사용하는 전통적인 방법은 새로운 클래스를 추가하는 것이다. 클래스를 재사용하는 가장 대표적인 기법인 상속은 클래스 안에 정의된 인스턴스 변수와 메서드를 자동으로 새로운 클래스에 추가하는 구현 기법이다. 또 상속외에는 코드를 효과적으로 재사용할 수 있는 방법이 있다. 새로운 클래스의 인스턴스 안에 기존 클래스의 인스턴스를 포함시키는 방법으로 합성이라고 부른다. * DRY(Don't Refeat Yourself) 원칙모든 지식은 시스템 내에서 단일하고, 애매하지 않고, 정말로 믿을 만한 표현 양식을 가져야 한다. 이 원칙의 핵심은 코드 안에 중복이 존재해서는 안된..