본문/내용
1. 자바에서 인터페이스와 추상 클래스의 차이점에 대해 설명하세요.
자바에서 인터페이스와 추상 클래스는 모두 다형성과 상속을 지원하는 구조로, 코드 재사용과 설계의 유연성을 높이는 데 중요한 역할을 합니다. 인터페이스는 주로 행동을 규정할 때 사용하며, 모든 메서드가 기본적으로 추상이고 구현이 없습니다. 따라서 여러 클래스가 같은 인터페이스를 구현할 경우 일관된 방법으로 동작을 강제할 수 있습니다. 예를 들어, 금융권 시스템에서 결제 방식이 다르더라도 결제 인터페이스를 구현하게 하여 확장성과 유지보수성을 높이는 사례가 있습니다. 반면, 추상 클래스는 상태와 일부 구현된 메서드를 포함할 수 있어 공통 기능을 공유하기 적합합니다. 예를 들어, 차량이라는 추상 클래스에 공통 속성과 일부 메서드 구현을 넣고, 세부 차량 종류별 클래스를 만들어 기능을 확장할 수 있습니다. 통계적으로, 인터페이스를 사용한 시스템은 코드 변경이 적고, 확장에 유리하여 유지보수 비용이 평균 25% 절감된 사례가 존재합니다. 그러나 추상 클래스는 필드와 구현된 메서드를 재사용할 수 있어, 복잡한 공통 기능을 포함하는 경우 유지보수와 확장이 더 용이…