interface (다중상속)
단일 상속의 한계를 극복한 다른 언어에서 찾기 힘든 자바의 고급 기능
다중 상속과 비슷한 기능을 제공하며, 외부를 서로 이어주는 통로 역할을 한다.
추상 클래스는 추상 메소드와 일반 메소드를 가질 수 있는 반면,
인터페이스는 오직 추상 메소드만 가질 수 있다.
※ 주의사항
- 인터페이스 내에 존재하는 모든 메소드는 public abstract로 선언된다.
- 인터페이스 내에 존재하는 모든 메소드는 static이 될 수 없다.
- 인터페이스 내에 존재하는 모든 변수는 public static final로(상수) 선언된다.
- 클래스에 인터페이스 상속시 인터페이스 내에 정의된 모든 추상 메소드를 구현해야 한다.
<인터페이스 생성하기>
interface 인터페이스명{
public abstract void(); //추상 메소드
}
<인터페이스 사용하기>
class 클래스명 implements 인터페이스명{
인터페이스에서 미구현 된 메소드 오버라이드;
}
상속과 인터페이스의 차이점
- 상속 class A extends B
B라는 클래스를 상속받아 A의 기능을 더한다.
순수 상속 : 부모로부터 모든 권한과 재산 능력을 가져오기
- 인터페이스 class A implements B
B라는 인터페이스를 구현한다.0
권한 상속 : 인터페이스만 가져오기 (비어있는 것을 가져와서 사용)
'JAVA' 카테고리의 다른 글
다형성 (Polymorphism) (0) | 2021.07.19 |
---|---|
추상화 (Abstract) (0) | 2021.07.19 |
StringBuffer와 StringBuilder (0) | 2021.07.19 |
오브젝트 (Object) (0) | 2021.07.19 |
접근제어자 (AccessModifier) (0) | 2021.07.18 |