오늘은 6/6 현충일이다. 따로 약속도 없어서 마음 편하게 공부를 하였다.(OTL..)
오늘 역시 주어진 강의를 보았는데. 자바의 Interface에 관한 강의였다.
또 팀내에서 디자인패턴을 한 가지씩 설명하고 발표하는 시간을 갖기로 했는데
발표 하고싶은 후보군 3가지를 내일(6/6)까지 정해오기로 하여 자주쓰는 디자인 패턴들도 몇가지 읽어보았다.
default 메소드
에 관해서도 한 번 더 생각할 수 있었다. interface MyInterface {
/** default X -> 구현체 메소드X -> 추상 메소드
*/
void method();
/**
* default O -> 인터페이스가 구현체를 가질수 있게 됐다
*/
default void sayHello() {
System.out.println("hello");
}
}
아래에서 사용할 때
public class Main implements MyInterface {
public static void main(String[] args) {
/** 매개변수,반환타입이 명시되지 않은 추상 메서드 -> 구현체에서 재정의 필수!
*/
new Main().method();
/** 인터페이스에서 default 메서드로 구현해 줬기에 재정의(override) 필요X
* but 필요하다면 재정의 해주어 사용 가능
*/
new Main().sayHello(); //
}
@Override
public void method() {
System.out.println("method");
}
}
// 출력 : method
// hello
메소드 레퍼런스
는 단순히 코드를 줄여주는 의미로만 생각했는데 더 이해하기 쉽게, 쓰는 이유들을 본다면