- 다형성
- 서로 다른클래스의 객체가 같은 메시지를 받았을때 각자의 방식으로 동작하는 능력이다.
- 다형성과 일반화 관계는 코드를 간결하게 할 뿐만 아니라 변화에도 유연하게 대처 가능하다.
- 다형성을 사용하는 경우 구체적으로 어떤 클래스 객체가 참조되는지와 무관하게 프로그래밍 할 수 있다.
- *부모 클래스의 참조 변수가 자식 클래스의 객체를 참조할 수 있기 떄문에 새로운 자식클래스가 추가되더라도 부모 클래스는 영향을 받지 않는다.
- 즉, 결합도는 낮고 확장에 용이해진다.
- 결론
- 1. 여러 타입의 객체를 하나의 타입으로 관리하니 유지보수가 좋다.
(변경 사항 발생시 다형성으로 구현하지 않았을 때의 절반이상 코딩양 준다.)
- 2. 메속드의 매개변수(인자)로 상위 클래스, 추상 클래스, 인터페이스등이 온다면 그 하위클래스, 인터페이스를 구현한 클래스등이 인자로 들어 갈 수 있어 좀 더 유연한 프로그래밍을 할 수 있다.
(당연히 이부분도 프로그램의 유지보수 차원에서 좋다)
- 3. 확장성이 좋은 코드를 작성할 수 있고, 결합도가 강하지 않은 프로그래밍을 할 수 있다.