데이터 과학

인터페이스 (interface) 본문

프로그래밍 언어론/JAVA 기초

인터페이스 (interface)

티에스윤 2022. 11. 13. 21:17

인터페이스(interface)는 다중 상속과는 크게 관련이 없는 형식입니다. 

그 이유는 상속 extends의 개념과는 다른 implements를 사용합니다.

 

구체화가 되어 있지 않아서 객체로도 선언 할 수도 없고, 더군다나 일반 메소드는 가지고 있을 수도 없습니다. 그냥 명세적인 의미로 추상화된 선언만 있을 뿐입니다. 

그리고, 인터페이스끼리의 다중상속은 가능하지만 일반 클래스로의 다중 상속은 불가능합니다. 

 

인터페이스는 추상메소드와 상수(constant)만 선언할 수 있습니다. 

 

interface PlayingCard {

   public static final int SPADE = 4;

   final int DIAMOND = 3; // public static final int DIAMOND=3;

   static int HEART = 2; // public static final int HEART=2;

   int CLOVER = 1; // public static final int CLOVER=1;

 

   public abstract String getCardNumber();

   String getCardKind(); // public abstract String getCardKind();로 간주된다.

}

 

 

다음 예제를 한번 봅시다. 

 

interface 자동차엔진 {
   public String 최대속도();
}

class 고속엔진 implements 자동차엔진 {
   public String 최대속도()  {
      return "200km";    

  }
}
class 저속엔진 implements 자동차엔진 {
public String 최대속도()  {
 return "100km";
 }
}

class 엔진제조사 {
자동차엔진 엔진;
엔진제조사() {
 엔진 = new 고속엔진();
}

자동차엔진 엔진함수() {
 return 엔진;
  }
}


public class engine  {
   public static void main( String[] args)  {
 자동차엔진 엔진 = new 엔진제조사().엔진함수();
 System.out.println(엔진.최대속도());
   }
}

 

결과

 

200km 

'프로그래밍 언어론 > JAVA 기초' 카테고리의 다른 글

부동소수점 연산 - BigDecimal  (0) 2023.03.20
static 메소드  (0) 2023.03.19
추상 클래스와 오버라이딩  (4) 2022.11.13
상속(Inheritance)  (10) 2022.11.06
메소드 오버로딩  (7) 2022.11.05