티스토리 뷰
default
- interface에서 구현을 가지는 메서드
- interface를 구현한 class의 instance가 생성되어야 사용 가능
- 재정의 가능
//interface
public interface Calc {
default void des() {
//..
method1();
}
private void method1() {
//...
}
}
//Test.java
public class Test {
public static void main(String[] args) {
Calc calc = new 하위class();
calc.des();
}
}
static
interface에서 구현을 가지는 메서드
instance 생성과 상관없이 사용가능
inplements가 되지 않더라도 interface type으로 직접 호출해서 사용가능
//interface
public interface Calc {
static int total(int[] arr) {
//..
method2();
}
private static void method1() {
//...
}
}
//Test.java
public class Test {
public static void main(String[] args) {
int[] arr = {1,2,3};
Calc.total(arr);
}
}
private
- interface를 구현한 class에서 사용하거나 재정의 할 수 없음
- default 메서드, static 메서드에서 사용
반응형
'Tip and Error > JAVA' 카테고리의 다른 글
JAVA 컴파일 과정 (0) | 2021.04.17 |
---|---|
toString() & equals() & hashCode() & clone() (0) | 2021.04.16 |
인터페이스 활용 (interface) (0) | 2021.04.14 |
인터페이스 (interface) (0) | 2021.04.14 |
추상 클래스(abstract class) & 템플릿 메서드(final) (0) | 2021.04.13 |
공지사항
최근에 올라온 글