Java8부터 인터페이스에서 default 메서드를 만들 수 있게 되었다.
1
2
3
4
5
6
7
8
|
public interface Bird {
void speak();
default void fly() {
System.out.println("fly");
}
}
|
cs |
가령 새라는 인터페이스를 만들고 fly라는 default method를 생성하면
구현체에서 fly를 구현하지 않더라도 사용할 수 있다.
1
2
3
4
5
6
7
8
9
|
public class Pigeon implements Bird{
@Override
public void speak() {
System.out.println("gugugu");
}
}
|
cs |
1
2
3
4
5
6
|
public static void main( String[] args) {
Bird bird = new Pigeon();
bird.fly(); // fly
bird.speak(); // gugugu
}
|
cs |
1
2
3
4
5
6
7
8
9
10
11
12
13
|
public class Duck implements Bird{
@Override
public void speak() {
System.out.println("Quack");
}
@Override
public void fly() {
System.out.println("오리날다");
}
}
|
cs |
default method를 override 가능하다.
1
2
3
4
5
6
7
8
9
|
public class App {
public static void main( String[] args) {
Bird bird = new Duck();
bird.fly(); // 오리날다
bird.speak(); // Quack
}
}
|
cs |
인터페이스를 다중 구현하는 경우에 default method가 중복되는경우에는 에러가 발생한다.
'JAVA' 카테고리의 다른 글
자바 데이터 타입, 변수 그리고 배열 (0) | 2020.11.17 |
---|---|
JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가 (0) | 2020.11.17 |
Java8 Function (0) | 2020.10.18 |
Garbage Collection (0) | 2020.09.04 |
Java Heap (0) | 2020.09.04 |