- 상수와 추상 메서드로만 이루어져 있다 + 디폴트 메소드, 정적 메소드 (자바 8부터) + 프라이빗 메소드(자바 9부터)
- 인터페이스에서 선언한 변수는 컴파일 시 상수로 변환된다 (public static final 예약어를 쓰지 않아도 쓴것과 동일)
- 인터페이스를 구현한 클래스가 어떤 기능의 메소드를 제공하는지를 명시
- 하나의 인터페이스는 여러개의 인터페이스를 상속받을 수 있다
- 하나의 클래스는 여러개의 인터페이스를 구현하여 사용할 수 있다
--> 클래스는 인터페이스가 각각 가지고 있는 모든 메소드를 구현해야함
public interface IA {
int k = 10;
int y = 20;
// 추상 메소드
public abstract void pnr();
void disp();
//static 메소드
public static void static_prn() {
System.out.println("static_prn");
}
//default 메소드
public default void default_prn() {
System.out.println("default_prn");
}
}
interface IB{
String test_prn();
}
변수 k 와 y는 컴파일 과정에서 상수로 변환된다. (public static final 한 것과 동일)
public abstract class My implements IA, IB{
@Override
public void pnr() {
System.out.println("this is pnr");
}
@Override
public void disp() {
System.out.println("it's disp");
}
}
IA 인터페이스의 pnr 메소드와 disp 메소드 구현.
IB 인터페이스의 test_prn 메소드는 구현하지 않아 추상 클래스이다.
public class MyTest extends My{
@Override
public String test_prn() {
String str = "test_prn";
return str;
}
public static void main(String[] args) {
System.out.println(k);
System.out.println(y);
My m = new MyTest();
m.pnr();
m.disp();
System.out.println(m.test_prn());
}
10
20
this is pnr
it's disp
test_prn
'JAVA' 카테고리의 다른 글
[JavaFX] Scene Builder 설치 및 설정 (0) | 2021.08.14 |
---|---|
Java 배열 (0) | 2021.08.12 |
Java class 04 - 추상클래스 (0) | 2021.08.09 |
Java class 03 - 상속 (0) | 2021.08.05 |
JAVA 접근제한자 및 getter & setter (0) | 2021.08.04 |