/*
<인터페이스>
◎ 상속(Inheritance)관계가 클래스 간의 기능 확장에 중점을 뒀다면, 인터페이스(Interface) 구현(Implementation)은
어떠한 클래스로 하여금 이에 속성이나 특성 등을 부여하거나 기능상의 골조를 만들기 위해 사용한다.
◎ 명명법은 기본적으로 파스칼 케이스를 따르나, 대문자 I 로 시작하게 하기도 한다.
-I(명사), I(동명사), I(-able) 혹은 I없이 (명사), (동명사), -able
◎ 인터페이스가 가지는 모든 멤버변수는 public 이고 정적이며 읽기 전용일 수 밖에 없다.
-public static final 을 생략
◎ 인터페이스가 가지는 모든 메서드는 public 이고 (일반적으로) 추상적이다.
◎ 인터페이스가 가지는 메서드가 구현부를 가지게 하기 위해 아래와 같이 default 키워드를 이용할 수 있다.
public interface [인터페이스 이름]{
default [반환타입|void] [메서드 이름]{
//구현부
}
}
이때, default 는 메서드를 추상화하지 않겠다는 키워드이며 접근 제한자가 아님에 유의한다.
*/