코드 작성
package ex_interface; // 인터페이스 정의 public interface RemoteControl { /* * 인터페이스 * < 정의 기본 문법 > * [접근제한자] interface 인터페이스명 { * * // 상수 선언 * // 추상메서드 정의 * * // 1.8 이후 * // 디폴트 메서드 정의 * // 정적 메서드 정의 * * } */ // 상수 public static final int MAX_VOLUME = 100; public static final int MIN_VOLUME = 0; int MAX_CHANNEL = 100; // 상수(static final 생략되어 있음) public int MIN_CHANNEL = 1; // 상수 // => 인터페이스 내의 모든 변수는 상수로 취급됨! // 인터페이스 내의 모든 메서드는 추상메서드로 취급됨! // public void turnPower() {} // 오류 발생 public void turnPower(); // 추상메서드로 정의(abstract 생략되어 있음) public abstract void channelUp(); // 추상메서드 public abstract void channelDown(); // 추상메서드 public abstract void changeChannel(int channel); // 추상메서드 void volumeUp(); // 추상메서드(public abstract 생략되어 있음) void volumeDown(); // 추상메서드 }
[코드 설명]
출력 결과
[없음]
나의 소감
인터페이스도 앞에서 봤던 abstract와 마찬가지로 뼈대 역할을 하는 느낌이 든다
그렇듯이 메서드(생성자 생성 불가!) 선언시 abstract를 적지 않더라도 자동으로 적용된다
그리고 정의되는 모든 변수는 상수로 취급되기 때문에
public static final int STUDY_NUM = 10; 과 public int STUDY_NUM = 10; 은 같은 표현이라고 할 수 있다
즉, static final이 생략되어 있어도 자동으로 적용된다!
'JAVA' 카테고리의 다른 글
인터페이스 활용 | 22/01/05 (0) | 2022.01.11 |
---|---|
인터페이스 활용 | 22/01/03 (0) | 2022.01.11 |
상수 | 22/01/03 (0) | 2022.01.11 |
final | 22/01/03 (0) | 2022.01.11 |
싱글톤(Singleton) 활용 | 21/12/30 (0) | 2022.01.11 |