티스토리 뷰

공부합시다/찍먹

인터페이스(Interface)

신규_유저 2021. 3. 11. 11:42

인터페이스(Interface)란?

서로 다른 하드웨어 장치들이 상호 데이터를 주고받을 수 있는 규격을 의미함.

소프트웨어를 규격화된 무듈로 만들ㅇ고, 서로 인터페이스가 맞는 모듈을 조립하듯이 응용프로그램을 작성할 수 있음.

 

자바의 인터페이스

클래스가 구현해야 할 메소드들이 선언되는 추상형

자바의 인터페이스는 interface 키워드를 사용하여 클래스를 선언하듯이 선언함.

인터페이스는 객체를 생성할 수 없음.

인터페이스 타입의 래퍼런스 변수는 선언 가능.

인터페이스끼리 상속 가능

인터페이스를 상속받아 클래스를 작성하면 인터페이스의 모든 추상 메소드를 구현하여야 함.

 

인터페이스 작성 예시

interface AAA {
	/* interface 선언에 의하여 다중 상속을 위한 최적의 멤버필드를 가지게 됨. 
	   인터페이스 클래스의 정의된 멤버필드는 모드 static final 형태로 선언됨.*/
	public static int x = 100;
	public static final int w = 0;
	public final int y = 200;
	public int z = 300;
//	void ddd() {[여기가 내용부]} 내용부를 정의할 수 없음.
	public static class Inner {
	} // 이렇게 하면 내용부 정의할 수 있긴 함.
	public abstract void aaa(); // 추상 메소드를 사용 할 수 있음.
	public void bbb(); // abstract를 안해도 메소드 정의 가능
	void ccc();
}

public class Exam02 {
	public static void main(String[] ar) {
		/* 모든 것이 static으로 선언되었기 때문에 사용 가능함. */
		System.out.println("x=" + AAA.x);
		System.out.println("w=" + AAA.w);
		System.out.println("y=" + AAA.y);
		System.out.println("z=" + AAA.z);
//		AAA.w = 10; // 멤버 필드가 final 형태로 정의되어있기 때문에 변경이 불가능함.
//		AAA.x = 1000;
//		AAA.y = 40;
//		AAA.z = 55;
	}
}

인터페이스 상속 예시

interface E {
}

interface F extends E {
}

interface G {
}

interface H extends E, G /* 다중 상속 가능함 */ {
}

class I implements E, G {
}

//interface K implements I{} /* interface K는 I클래스를 상속받을 수 없음. */

public class Exam03 {
}
반응형
LIST
댓글
링크
공지사항
최근에 올라온 글