노무현 대통령 배너

상속을 사용하게 되면 이미 테스트를 완료한 코드를 전혀 수정하지 않고 손쉽게 재사용하고 확장 할 수 있다. 상속을 사용하지 않고 기존 애플리케이션을 재 사용 했다고 가정해 보자. 문제가 발생하지 않는지 확인하기 위해 애플리케이션 전체를 다시 테스트 해야만 한다. 하지만 상속을 사용한 경우라면 이야기가 달라진다. 서브클래스(subclass)를 정의했다 하더라도 수퍼클래스(superclass)의 소스는 전혀 수정하지 않았기 때문에 그 부분에 대한 테스트는 필요없다. 새롭게 추가된 부분만 테스트 하면 된다.

오버라이딩(Overriding)은 메소드의 인터페이스/시그너처를 변경하지 않고 내부적으로 동작하는 방식을 '재작성'하는 것이다. 오버라이딩으로 서브클래스에서 메소드를 재정의 하게되면 위에서 말한 이점을 더욱 살릴수 있다. 오버라이딩된 메소드만 테스트 하면 수퍼클래스의 신뢰된 메소드를 모두 사용할 수 있다. 그러나 오버로딩(Overloading)은 다르다. 시그너처가 다른 n개의 메소드가 독립적으로 존재함으로 각각의 경우마다 테스트가 필요하다.


크리에이티브 커먼즈 라이선스
Creative Commons License
TAG