인터페이스
다른 언어에서 찾기 힘든 자바의 고급 기능으로, 단일 상속의 한계를 극복할 수 있다.
인터페이스는 다중상속과 비슷한 기능을 제공하며, 외부를 서로 이어주는 통로 역할을 한다.
인터페이스 생성하기
interface 인터페이스명{
public abstract void();//추상 메소드
}
인터페이스 사용하기
class 클래스명 implements 인터페이스명{
인터페이스에서 미구현 된 메소드 오버라이드;
}
인터페이스 구현 시 주의점
- 인터페이스 내에 존재하는 메소드는 무조건 public abstract로 선언해야 한다.
- 인터페이스 내에 존재하는 변수는 무조건 public static final로 선언해야 한다.
인터페이스 상속 시 주의점
- 클래스에 인터페이스 상속시 인터페이스 내에 정의된 모든 추상 메소드를 구현해야 한다.
EX01. 인터페이스
sayHi 인터페이스를 상속받은 Say는 SayHi 인터페이스의 추상 메소드를 모두 구현해야 한다.
package interfacetest;
interface SayHi{
public static final int NUMBER = 0;//상수: static final int
public void sayHi();//추상메소드
void sayBye();//추상메소드
}
class Say extends Object implements SayHi{
@Override
public void sayHi() {//인터페이스에 있는 미구현(추상) 메소드 구현하기
}
@Override
public void sayBye() { }
}
추상 클래스 vs 인터페이스
- 추상 클래스(abstract 클래스)는 일반 메소드와 추상 메소드 둘 다 가질 수 있는 반면에,
인터페이스는 오로지 추상 메소드와 상수만 가질 수 있다.
상속 vs 인터페이스
- 상속 class A extends B
"B라는 클래스를 상속받아 A만의 기능을 더한다."
순수 상속 : 부모로부터 모든 권한과 재산 능력을 가져온다 - 인터페이스 class A implements B
"B라는 인터페이스를 구현하겠다."
권한 상속 : 인터페이스(비어있는 것)을 가져와서 다 채워넣어 사용
'BackEnd > Java' 카테고리의 다른 글
[Java] 다형성 Polymorphism (0) | 2021.07.13 |
---|---|
[Java] 추상 Abstract (0) | 2021.07.13 |
[Java] 자바 API 읽기 (0) | 2021.07.09 |
[Java] String Builder / String Buffer (0) | 2021.07.09 |
[Java] 생성자 Constructor (0) | 2021.07.09 |
댓글