훈수/저작권 관련 지적 환영합니다 - 댓글 또는 audgnssweet@naver.com
추상 클래스 vs. 인터페이스
앞서 추상 클래스와 인터페이스에 대해서 알아보았었는데요
비슷한 점이 많았습니다.
그럼 비슷한데 구분하는 게 의미가 있나?라고 생각하실 수도 있는데
다른 점들이 있습니다.
목적에서 가장 큰 차이를 갖는다고 할 수 있습니다.
추상 클래스는 코드의 집중이 목적입니다.
하위 클래스에서 필요로 하는 공통적인 기능들은 구현해두고 상속받아 활용할 수 있도록 하되,
하위 클래스에서 구현할 수 밖에 없는 기능들을 추상 메서드로 정의하여 다형성을 실현합니다.
인터페이스는 코드의 분리가 목적입니다.
두 모듈 사이에 인터페이스를 두어 모듈의 응집력은 높이되 의존성은 낮춥니다.
개발자로 하여금 인터페이스의 목적에 따라, 상속받는 클래스에서 추상 메서드를 정의하도록 하여 다형성을 실현합니다.
상속과 구현을 동시에 할 때
abstract class UpClass {
public abstract void print();
}
interface MyInterface {
void doSomething();
}
interface MyInterface2 {
void doSomething2();
}
class MyImpl extends UpClass implements MyInterface, MyInterface2 {
@Override
public void print() {
System.out.println("추상 클래스 구현");
}
@Override
public void doSomething() {
System.out.println("인터페이스1 구현");
}
@Override
public void doSomething2() {
System.out.println("인터페이스2 구현");
}
}
위와 같이 사용합니다.
오늘은 추상 클래스와 인터페이스의 차이에 대해서 알아보았습니다.
'Java' 카테고리의 다른 글
Join 종류 (0) | 2021.05.12 |
---|---|
인터페이스 (0) | 2021.05.11 |
추상 메서드와 추상 클래스 (0) | 2021.05.11 |
(상속) 메서드 오버라이딩과 다형성 (0) | 2021.05.11 |
(상속) 메서드 오버라이딩과 동적 바인딩 (0) | 2021.05.07 |