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 메소드를 재정의 하였다.
자바에서도 람다함수처럼 사용하는 방법이 나왔으므로 람다함수에 익숙하신 분들은 편한 방법을 사용하면 된다.