인터페이스

song yuheon·2023년 8월 20일
0

인터페이스의 역활

인터페이스는 두 객체를 연결해주는 다리 역할
상속 관계가 없는 다른 클래스들이 서로 동일한 기능 즉, 메서드를 구현해야할 때 인터페이스는 구현 클래스들의 동일한 사용 방법과 행위를 보장

=> 즉 인터페이스는 다양한 것들이 공통의 규칙을 따르도록 하는 도구

쉽게 말해 인터페이스는 여러 클래스들이 같은 기능(메서드)를 갖도록 "약속"을 하는 것 이 약속된 기능(메서드)은 인터페이스에 정의되어 있음
그러면 서로 다른 클래스들이 이 인터페이스를 사용하면, 그 클래스들은 모두 그 약속된 기능을 반드시 구현해야함

  • 인터페이스의 특징

    • 인터페이스는 스팩이 정의된 메서드들의 집합
    • 인터페이스의 구현 클래스들은 반드시 정의된 메서드들을 구현
      => 구현 클래스들의 동일한 사용 방법과 행위를 보장 가능
      -> 인터페이스에 다형성을 적용할 수 있게 만듬
  • 인터페이스 선언

      public interface interfaceName {     }
  • 인터페이스 구성
    멤버 변수는 반드시 public static final 생략 시 컴파일러 자동 추가
    메서드는 public abstract or 생략
    ( 생략되는 제어자는 컴파일러가 자동 추가 )

  • 인터페이스 구현
    인터페이스는 추상 클래스와 동일하게 직접 인스턴스 생성 불가
    => 클래스에서 구현되어 생성

        public class className implements interfaceName { 
                @Override
            public returnType methodName(parameter ...) {
                       // Logic
            }
        }

    인터페이스 추상 메서드는 구현할 때 반드시 오버라이딩
    모든 추상 메서드 구현이 힘들면 추상 클래스로 변경

  • 인터페이스 상속
    인터페이스간의 상속은 implements 가 아닌 extends 키워드를 사용
    implements는 클래스와 인터페이스 간의 상속

    • 다중 상속이 가능
    • 인터페이스의 구현은 상속과 함께 사용 가능
profile
backend_Devloper

0개의 댓글