자바
[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{}