JAVA 기초

JAVA 11-3

Vanillwa 2023. 8. 25. 21:46

Interface

클래스들이 구현해야 하는 동작을 지정하는데 사용되는 추상 자료형이다.

 

InterTest 인터페이스

package ex7_interface;

//인터페이스는 다른 클래스코드들과 중간 매개 역할을 담당
public interface InterTest {
	//인터페이스에 들어갈 수 있는 것
	//1. 상수 -> 값을 초기화 후 대입이 불가능
	final int A = 100; //상수 이름은 대문자
	//2. 추상 메서드
	abstract int getA();
}

 

InterChild 클래스

package ex7_interface;

public class InterChild implements InterTest {
	//인터페이스를 구현하기위해 다른 클래스에선 implements 예약어 사용
	
	@Override
	public int getA() {
		return A; //InterTest의 상수 A반환
	}
}

 

Main 클래스

package ex7_interface;

public class InterMain {
	public static void main(String[] args) {
		//인터페이스도 일반적으로 객체화 불가능
		//InterTest it = new InterTest();
		
		InterChild ic = new InterChild();
		System.out.printf("getA() : %d\n",ic.getA());
	}
}

실행 결과


인터페이스 예제

 

Menu 1, 2, 3 interface

 

package ex8_interface;

public interface Menu1 extends Menu2, Menu3{
	//인터페이스끼리 상속이 가능
	//다중상속도 가능
	public String jajang();
}
package ex8_interface;

public interface Menu2 {
	public String tangsuyuck();
}
package ex8_interface;

public interface Menu3 {
	public String bokkembab();
}

 

Kitchen 클래스

package ex8_interface;

public class Kitchen implements Menu1/*Menu2, Menu3*/ {

	@Override
	public String bokkembab() {
		return "밥 + 짜장 + 계란";
	}

	@Override
	public String tangsuyuck() {
		return "돼지고기 + 튀김옷 + 소스";
	}

	@Override
	public String jajang() {
		return "중면 + 짜장 + 완두콩";
	}	
}

 

Main 클래스

package ex8_interface;

public class KitchenMain {
	public static void main(String[] args) {
		Kitchen k = new Kitchen();
		
		System.out.println("짜장면 : "+k.jajang());
		System.out.println("탕수육 : "+k.tangsuyuck());
		System.out.println("볶음밥 : "+k.bokkembab());
	}
}

실행 결과

'JAVA 기초' 카테고리의 다른 글

JAVA 12-2  (0) 2023.08.29
JAVA 12-1  (0) 2023.08.28
JAVA 11-2  (0) 2023.08.25
JAVA 11-1  (0) 2023.08.25
JAVA 10-HW  (0) 2023.08.24