백엔드/JAVA

인터페이스가 가지고 있는 객체 지향의 특징

whooooo 2023. 10. 21. 01:10

인터페이스

  • 다른 클래스를 작성할 때 기본이 되는 틀을 제공하면서, 다른 클래스 사이의 중간 매개 역할까지 담당하는 일종의 추상 클래스를 의미
  • 자바의 인터페이스는 추상 메서드와 상수로만 이루어져있음
  • interface 키워드를 통해 선언, implements 키워드를 통해 일반 클래스에서 인터페이스를 구현 

예시 코드 

interface 인터페이스이름 {
    // 모든 필드는 public static final 이어야 하며, 생략 가능.
    public static final 타입 상수이름 = 값;
    // 모든 메서드는 public abstract 이어야 하며, 생략 가능
    public abstract 타입 메서드이름(매개변수목록);
    
    void resetGame(); 
}

// 클래스에서 인터페이스를 상속하는 코드 
public 클래스명 implements 인터페이스이름 {
}


// 인터페이스 다중 상속 
interface SkillA {
}

interface SkillB {
}

// 인터페이스에서 다른 인터페이스를 다중 상속
public interface Skills extends SkillA, SkillB {
}

 

인터페이스가 가진 객체지향의 특징

  1. 캡슐화
    - 모든 필드는 public static final 이어야 하고, 모든 메서드는 public abstract 이어야한다.
  2. 추상화
    - 스스로 인스턴스를 생성할 수 없고, 다른 클래스의 기본이 되는 틀을 제공하고, 다른 클래스 사이의 중간 매개 역할을 한다.  
    - 클래스의 설계 또는 표준화를 유도 할 수 있다. 
  3. 다형성
    - 매개변수에 입력된 값을 통하여 다른 값을 리턴할 수 있다. 
  4. 상속성
    - extends 를 이용하여 다른 인터페이스를 상속 받을 수 있고, 다중 상속도 가능하다.