자바

[JAVA] 컴퓨터 프로그래밍 - 인터페이스

skynode 2025. 4. 28. 00:54

인터페이스

클래스의 틀이라고 생각하면 됨. 클래스에 대한 규약같은 느낌.
클래스의 규칙이기 때문에 메소드 구현이나 인스턴스 변수는 선언하지 않음
static 변수와 어떤 메소드를 쓸지만 정해주는 규칙임

interface ClsRule{
    int a = 10; // 자동으로 public static final 로 선언됨
    void anyMethod(); // 중괄호로 내용 주면 안됨. 그냥 얘를 꼭 써야 한다고 명시만 하는 역할.
    // 자동으로 public abstract로 선언됨
}

인터페이스 안에 선언되는 변수는 무조건 static final 변수이어야 함.
-> 인스턴스 변수 생성 불가

인터페이스 안에 선언되는 메소드는 무조건 public abstract으로 선언해야함.
-> {}(중괄호) 로 뒤에 구현체 쓰면 안됨

default method

단 예외가 하나 있는데 디폴트 메소드 임
default 예약어를 통해 인터페이스 안에 메소드를 정의할 수 있는데,
이 메서드는 abstract일 필요 없고, 직접 interface 안에 구현하면 됨

인터페이스를 구현하는 클래스는 implements를 이용해야함

public class Cls implements ClsRule{}

인터페이스가 인터페이스를 상속하면 extends를 사용함.

interface A extends B{}

인터페이스를 쓰는 이유?

인터페이스는 여러개를 한번에 상속시킬 수 있음!

public class A implements B,C{}

interface A extends B,C{}