0. 인터페이스란?
1. 인터페이스 정의 방법
2. 인터페이스 구현 방법
3. 인터페이스 레퍼런스를 통해 구현체 사용 방법
4 .인터페이스 상속
5. 인터페이스 기본 메소드, static 메소드, private 메소드
0. 인터페이스란?
- 클래스들이 필수로 구현해야 하는 추상 자료형, 객체의 사용방법을 가이드라인 하는 것이다.
- 다중 상속 가능, 생성자 사용 불가, 메소드 오버라이딩 필수다.
- 추상 클래스를 통해 객체들 간 네이밍을 통일할 수 있다. -> 소스의 가독성과 유지보수 향상
1. 인터페이스 정의 방법
- 추상 클래스의 작성과 유사하다.
- 변수가 아닌 상수 정의
- public static final과 public abstract 제어자는 생략 가능
interface Animal{
public static final int BORN_AGE = 0;
public abstract void cry();
}
2. 인터페이스 구현 방법
- 추상 클래스처럼 그 자체로는 객체를 생성할 수 없다.
- 구현부를 만들어주는 클래스에 구현되어야 한다.
- 인터페이스를 구현하고 싶은 클래스에 implements 키워드를 쓴 후 인터페이스를 나열한다.
- 인터페이스 여러 개를 다중 구현이 가능하다.
class Dog impliments Animal {
@Override
public void cry() {
System.out.println("멍");
}
}
3. 인터페이스 레퍼런스를 통해 구현체 사용 방법
public static void main(String[] args) {
Animal animal = new Dog();
Dog dog = new Dog();
animal.cry(); // 불가능
dog.cry(); // 멍
}
4. 인터페이스 상속
- 인터페이스는 인터페이스를 상속받을 수 있다.
- 인터페이스 끼리는 다중 상속이 가능하다.
interface A { ... }
interface B { ... }
interface C extends A, B { ... }
class D implements C { // A와 B에 있는 추상 멤버들 }
5. 인터페이스 메소드
기본 메소드
- 인터페이스를 구현하는 클래스들이 공통으로 사용할 수 있는 기본 메소드다.
- 상속받는 클래스에서 필수로 구현하지 않아도 된다.
static 메소드
- 인스턴스 생성과 별개로 인터페이스 타입으로 사용 가능하다.
- "인터페이스명.static 메소드명()" 으로 사용한다.
pivate 메소드
- 인터페이스를 구현한 클래스 내에서 재정의할 수 없다.
- 인터페이스 내부에서만 구현이 가능하다. (캡슐화)
- default 메소드나 static 메소드에서 사용한다.
- 인터페이스에서 로직 구현이 되어야 하고, 추상 메소드가 될 수 없다.
'Programming > JAVA' 카테고리의 다른 글
Te JAVA (5) - 멀티스레드 프로그래밍 (0) | 2023.11.01 |
---|---|
Te JAVA (5) - 예외 처리 (1) | 2023.11.01 |
Te JAVA (3) - 자료구조 구현 (Binary Tree) (0) | 2023.10.13 |
Te JAVA (3) - 상속 (0) | 2023.10.13 |
Te JAVA (3) - 클래스 (0) | 2023.10.12 |