2014년 5월 22일 목요일

Java8 Default Method

Java 8에서 추가된 기능 중 Interface에 default 선언으로 메서드를 만들 수 있게 되었다. 마치 Abstract class 처럼 사용되지만 Interface이기 때문에 다중 상속이 가능하게 되었다.


작성된 메서드에 ‘default’선언을 해준다. 먼저 Eclipse에서 Java8을 쓰기위해서는 ‘Kepler Service Release 2’을 설치하고, “Help > Eclipse Marketplace…” 메뉴에서 ‘Java 8 support for Eclipse Kepler SR2’을 검색하여 설치해야 합니다.

NamedPerson을 상속받는 Student, Contact을 만들고 그중 Student에서는 ‘fullName’메서드를 Override 합니다. 이렇게 만들어진 클래스를 테스트 해보면.

Override하지 않은 경우, 인터페이스에 정의된 Default 메서드가 동작 함을 볼 수 있습니다. 하지만 다중 상속으로 중복된 Default 메서드가 있는 경우를 테스트 해보면

NamedPerson과 동일한 AddressBookEntry을 만들어 Student와 Contact에서 상속받게 합니다.
Student의 경우에는 중복되는 “fullName”메서드가 Override되어 있기 때문에 문제가 없지만, Contact의 경우

“Duplicate default methods named fullName with the parameters () and () are inherited from the types AddressBookEntry and NamedPerson” 처럼 default 메서드가 중복되어 있다는 컴파일 오류가 발생합니다. 이런 경우에는 필히 중복된 Default 메서드를 Override 해서 해결해야 합니다.

댓글 없음:

댓글 쓰기

ETL 솔루션 환경

ETL 솔루션 환경 하둡은 대용량 데이터를 값싸고 빠르게 분석할 수 있는 길을 만들어줬다. 통계분석 엔진인 “R”역시 하둡 못지 않게 관심을 받고 있다. 빅데이터 역시 데이터라는 점을 볼때 분산처리와 분석 그 이전에 데이터 품질 등 데이...