item20


추상 클래스보다는 인터페이스를 우선하라

추상 클래스와 인터페이스

추상 클래스

하나 이상의 추상 메서드를 포함하는 클래스

class abstract AbstractClass {
		private final String name;

		public abstract void method1();
}

인터페이스

추상 메서드의 집합.

interface Calculator {
		public static final int ONE = 1;	

    public int plus(int i, int j);
    public int multiple(int i, int j);

    // private 메서드
    private void printf() {
        System.out.println("private 메서드는 default 내부에서만 호출이 가능합니다.");
    }

    // private 스태틱 메서드
    private static void printfStatic() {
        System.out.println("private static 메서드는 static 메서드 내부에서만 호출이 가능합니다.");
    }

    // 디폴트 메서드
    default void callPrivate() {
        printf(); // private 메서드 호출
    }

    // 스태틱 메서드
    static void callPrivateStatic() {
        printfStatic(); // private 스태틱 메서드 호출
    }
}