DevBoi

[Java] 추상클래스 인터페이스 차이 본문

Language/[Java]

[Java] 추상클래스 인터페이스 차이

HiSmith 2022. 3. 15. 14:15
반응형

1. 추상클래스

- 한개의 추상메서드와 일반메소드로 구현가능

- 공통된 기능을 상속 받는 클래스에서 사용하고싶을때, 여러클래스에서 상속 받아서 사용할때 사용하면 좋다.

- 미완성된 설계도이고, 상속 받는 하위타입에서 완성을 유도한다.

 

-> 상속 관계를 쭉 타고 올라가서, 같은 조상클래스를 상속하면, 기능까지 완벽히 같은 기능이 필요한 경우 사용하면 좋다.

 

 

2. 인터페이스

- 추상메서드로만 구현가능

- 공통의 기능을 정의할때 사용하면 좋다. 여러클래스에서 공통된 기능을 제공할때, 해당 인터페이스를 사용하여, 

기능 구현을 강제하면, 각 구현체들의 목적성이 뚜렷해진다.

- 설계도이고, 구현체에서 구현을 강제한다.

 

-인터페이스 장점

1. 협업 : return Type과, 메서드명을 미리 선언하여, 병행 개발을 가능하게 한다.

2. 교체 편리 : 단순히 기능을 변경하고자 할때, 다른 구현체를 만들어, 사용하는 곳의 생성 클래스 명만 바꾸면 된다.

3. 다중 상속 : 여러개의 인터페이스 구현이 가능하다.

 

-추상클래스 장점

- 코드 재사용성 용이

- 추상메소드로 필요한 기능은 별도로 상속 받는 쪽에서 구현, 완전 같은 기능은 하위타입에서 구현없이 사용가능

-단점

한개의 상속만 가능하다. 즉 다중상속이 불가하다.

반응형