o 인터페이스란?
- 상수와 추상 메소드로만 구성된다.
§ 의미상으로 떨어져 있는 객체를 서로 연결해 주는 규격을 말함
예) usb 규격 – 어떤 usb기기도 컴퓨터에 연결할 수 있는 인터페이스
- 인터페이스는 개념이나 구조적으로 추상 클래스와 유사함
- 특징
• 구현된 메소드가 없다.
• 상수형 변수만 가능(일반적인 변수 사용 불가)
• 모든 메소드는 메소드명과 매개변수, 반환 타입만 있는 추상 메소드로 정의
• 메소드의 접근 한정자는 항상 public 이어야 함
public interface IBicycle {
int FrameSize_L = 18; // 이것은 public static final 이 생략된 형태이다.
int FrameSize_M = 15;
int FrameSize_S = 12;
abstract void print();
}
public class Minivelo implements IBicycle {
int id;
String brand;
Minivelo(int i, String b){
id = i;
brand = b;
}
@Override
public void print() {
// TODO Auto-generated method stub
System.out.println("아이디 : "+ id);
System.out.println("브랜드 : " + brand);
System.out.println("사이즈 : " + this.FrameSize_L);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Minivelo mini = new Minivelo(1051 , "대륙의 자전거");
mini.print();
}
}
o 자바에서는 다중상속을 지원하지 않음. 대신 인터페이스로 비슷하게 가능.
§ 다중상속은 프로그램을 설계할 때 많은 도움이 됨
§ 자바에서는 다중상속의 해결점을 상속과 인터페이스 구현을 동시에 이용 하여 해결한다.
§ 하나의 implements키워드를 사용 후 각각의 인터페이스를‘,’를 이용해 나열
public class MotorBicycle implements IBicycle, IMotor
// 대신 모든 추상 매소드를 재정의 해야한다.
o 상속의 개념이 존재
§ 슈퍼 인터페이스를 상속하는 서브 인터페이스를 정의할 수 있음
§ 인터페이스의 계층구조가 용이
• 더욱 정밀한 인터페이스와 클래스를 설계할 수 있음
§ 인터페이스 상속은 슈퍼 인터페이스의 구현이 아닌 상속의 개념
• 주의 : extends 키워드 사용