컴퓨터공부/JAVA

인터페이스(interface)

E.K.Lim 2016. 12. 29. 14:19

인터페이스의 개념

1. 완벽한 추상화를 제공!

  - 인터페이스 내 모든 메소드는 추상메소드 : 본체 없음!

[public abstract] return-type method-name(); 

  - 모든 변수는 상수

[final] data-type 변수명 = 상수값;


2. 프로젝트시 표준 규약을 제공하기 위한 목적으로 쓰임


3. 객체 생성 불가능 (메소드의 본체가 없으니까..)

 - 다른 클래스 등에 상속 → 메소드 재정의 → 객체 생성 의 단계를 거친다!


4. 다중 상속 가능

 cf. 일반 클래스를 상속할 때 : 

class 자식클래스명 extends 부모클래스명{}

 - 인터페이스를 상속할 때 :

class 자식클래스명 implement(구현하다) 인터클래스1, 인터클래스2, ..., 인터클래스n{}


5. 클래스의 모형을 가지지만 클래스는 아님!

 - 선언 형식 :

interface 인터페이스명{}


인터페이스 예제

 interface Inter{  // interface 인터페이스명

// 모든 멤버 사용 가능 : 추상메소드, 상수화된 변수
// 변수 -> 상수
final int NUM1 = 10; // 변수의 상수화
int NUM2 = 20; // final 안써도 상수화됨!
// 메소드 -> 추상메소드
public abstract void display1(); // 추상메소드 선언하기
void display2(); // abstract 안 써도 추상메소드로 인식!
}
// 형식 : class 클래스명 implements 인터페이스명
class SubInter implements Inter{
// Error 발생 이유 : 추상 메소드 재정의 강제성
public void display1(){ // 추상메소드 재정의
System.out.println("display1");
}
public void display2(){ // 두번째 추상메소드 재정의 
System.out.println("nothing");
}
}