본문 바로가기
정리하기 이전 자료 ( before 20-11 )/Java

인터페이스의 요소들

by IMSfromSeoul 2020. 4. 13.

 다음과 같은 Interface를 만들었다.

 

public interface InterfaceTest {
    static void printStatic(){
        System.out.println("interface static method");
        printPrivateStatc();
    }
    default void print(){
        System.out.println("interface default method");
        printPrivate();
        printPrivateStatc();
    }
    private void printPrivate(){
        System.out.println("private interface method");
    }
    private static void printPrivateStatc(){
        System.out.println("private static interface method");
    }
}

 인터페이스는 Java 8 부터 default method, static method를 사용할 수 있게 되었고 Java 9 부터 private method를 사용할 수 있게 됐다. 주목할 점은 static method안에는 private static method만 사용할 수 있지만, default method 안에는 static private method 및 private method 둘다 사용가능하다. default method를 interface에 추가함으로써 기능으로서는 abstract method와 차이점이 거의 없어졌다고 보면 될 것 같다. 사용 용도에는 차이점이 있겠지만 말이다.

 

public class InterfaceBody implements InterfaceTest{
//    @Override
//    public void print() {
//        System.out.println("overRiding");
//    }
}

 InterfaceBody라는 이름의 클래스에서 InterfaceTest를 상속받았다. 이 때, default method는 overring 될 수 있다.

 

public class Test {
    public static void main(String args[])  {
        InterfaceTest.printStatic();

        InterfaceBody interfaceBody = new InterfaceBody();

        interfaceBody.print();
    }
}

 

static method 와 interface를 상속받은 body 인스턴스를 통해 print method를 호출했다.

 

interface static method
private static interface method
(임의의 빈칸)
interface default method
private interface method
private static interface method

출력결과

'정리하기 이전 자료 ( before 20-11 ) > Java' 카테고리의 다른 글

String.split() 을 이용하여 , 값 받기  (0) 2020.04.16
Naming Conventions  (0) 2020.04.06
인터페이스  (0) 2020.03.30
추상클래스 & 템플릿 메서드  (0) 2020.03.30
DownCasting & instance of  (0) 2020.03.29

댓글