JAVA
Interface default methods
e-pd
2020. 10. 19. 18:40
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가 중복되는경우에는 에러가 발생한다.