2020. 12. 14. 03:52ㆍBACK END/JAVA
1. 인터페이스
1) 인터페이스의 정의
- 구성요소가 추상 클래스와 final변수(상수)로만 이루어진 클래스
- 일반클래스가 인터페이스를 상속해주어야 구현이 가능함
* 상수는 public static final 키워드를 사용함
2) 인터페이스의 사용목적
- 클래스가 상속을 통해 구현하는 것에 한계가 있는 경우,
자바에서 원래는 불가능한 다중상속을 흉내내기 위한 도구임
3) 인터페이스의 특징
- 다중 구현이 가능함 - 클래스는 단일상속만, 인터페이스는 다중구현을 지원함
- 일반 클래스는 여러 인터페이스를 다중상속할 수 있음
- 인터페이스 간 상속에는 다중상속이 제공됨
- 상속받은 일반 클래스는 인터페이스의 추상메소드를 모두 재정의해야 함
4) 추상클래스와 인터페이스의
① 공통점
- 추상메소드를 갖는 것, 객체생성 불가능함, 상속받은 서브클래스에서 메소드를 정의함
- 오버라이딩할 땐 꼭 public을 써줌 (static메소드는 올 수 없고 메소드는 기본적으로 public성질을 갖기 때문)
- 인터페이스에서 선언한 멤버필드는 상수임 (즉, public static final의 속성을 갖고 있음)
② 차이점
- 인터페이스로 선언된 클래스를 일반 클래스가 상속받을 때, implements를 사용함
- 인터페이스끼리 상속할 때, extends를 사용함.
5) 사용방법
- 인터페이스 정의
ㄴ public interface [인터페이스명] 상수형변수 ; { abstract public [반환타입] [메소드명] (매개변수) ; }
- 일반 클래스에서 사용
ㄴ public class [자식클래스명A] implements [인터페이스명] { 필드; 메소드; }
- 다중 상속
ㄴ public class [자식클래스명B] implements [인터페이스명1], [인터페이스명2], ... , [인터페이스명n] {필드; 메소드;}
- 예시
public class VodClass implements OttService {
// 멤버변수
int id;
String app_name;
// 오버라이딩된 추상메소드
@overriding
public void Info() {
system.out.println("Ranking: " + ranking);
system.out.println("AppName : " + appname);
//인터페이스에서 제공하는 상수 사용
system.out.println("Frame Size : " + OttService.FrameSize_M);
}
public static void main(String[] args) {
VodClass vc = new VodClass();
vc.ranking = 10;
vc.appname = "Nexflix";
vc.Info();
}
}
'BACK END > JAVA' 카테고리의 다른 글
String.valueOf() vs toString() (0) | 2021.01.06 |
---|---|
Model2 - 미니쇼핑몰 예제(상품) (0) | 2020.12.16 |
Model2 - 미니쇼핑몰 예제(회원가입) (0) | 2020.12.14 |
Model2 - 미니쇼핑몰 예제(프로젝트 생성 순서) (0) | 2020.12.13 |
java 이론 총정리 (0) | 2020.11.04 |