Java

자바 step10 - interface(자바의 람다함수, override)

코딩탕탕 2022. 11. 6. 15:17

 

package test.mypac;

/*
 *  추상메소드가 1개인 인터페이스
 *  
 *  야는 좀 특별함...
 */
public interface Drill {
	public void hole();
}

interface로 Drill 생성하였다.

 

package test.main;

import test.mypac.Drill;

public class MainClass04 {
	public static void main(String[] args) {
		useDrill(new Drill() {
			@Override
			public void hole() {
				System.out.println("위이이이이이잉~~~!!!!!");
			}
		});
		
		useDrill(()->{
			System.out.println("위이이잉~~~!!!!!");
		});
		
		// 으악 이게 뭐지?
		Drill d2=()->{
			System.out.println("천장 구멍");
		};
		// Drill type 을 메소드의 인자로 전달하기
		useDrill(d2);
		// Drill type 의 메소드 직접 호출하기
		d2.hole();
		};
	
	// Drill 인터페이스 type 을 인자로 전달받는 메소드
	public static void useDrill(Drill d) {
		d.hole();
	}
}


<console>
위이이이이이잉~~~!!!!!
위이이잉~~~!!!!!
천장 구멍
천장 구멍

Drill 인터페이스 type 을 인자로 전달받는 메소드 useDrill을 만들어놓고 그것을 호출하여 hole 메소드를 재정의 하였다.

자바에서도 람다함수처럼 사용하는 방법이 나왔으므로 람다함수에 익숙하신 분들은 편한 방법을 사용하면 된다.