JAVA/요약

인터페이스, 다중 상속

gandus 2010. 10. 4. 12:51

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 키워드 사용