(JAVA)인터페이스(Interface)

진세종·2022년 4월 5일
0

JAVA

목록 보기
3/3

인터페이스란?

인터페이스란 다른 클래스를 작성할 때 기본이 되는 틀을 제공하면서, 다른 클래스 사이의 중간 매개 역할을 담당하는 일종의 추상 클래스

인터페이스 특징

1.자바에서 추상 클래스는 추상 메소드뿐만 아니라 생성자, 필드, 일반 메소드도 포함될 수 있다.
하지만 인터페이스는 오로지 추상 메소드와 상수만을 포함한다.

  1. 자바에서는 클래스를 통한 다중 상속을 지원하지 않는다. 하지만 다중 상속의 이점을 버릴 수 없기에 인터페이스를 통해 다중 상속 기능을 지원

인터페이스 선언

인터페이스 선언 시 접근 제어자와 함께 interface 키워드를 사용한다.


접근제어자 interface 인터페이스이름{
	public static final 타입 상수이름 =;
    ...
    public abstract 메소드이름(매개변수);
}

인터페이스의 모든 필드는 public static final이어야 하며, 모든 메소드는 public abstract이어야 한다.
이 부분은 모든 인터페이스에서 공통으로 적용되는 부분이므로 이 제어자는
생략할 수 있다.

인터페이스 구현

인터페이스는 추상 클래스와 마찬가지로 자신이 직접 인스턴스를 생성할 수 없다. 따라서 인터페이스가 포함하고 있는 추상 메소드를 구현해 줄 클래스를 작성해야만 한다.


class 클래스이름 implements 인터페이스이름{...}

인터페이스 예제

interface Animal { public abstract void cry(); }

class Cat implements Animal {

    public void cry() {
        System.out.println("냐옹냐옹!");
    }
}


class Dog implements Animal {

    public void cry() {
        System.out.println("멍멍!");
    }
}


public class Polymorphism03 {

    public static void main(String[] args) {

        Cat c = new Cat();

        Dog d = new Dog();

        c.cry();

        d.cry();
    }
}

실행 결과

냐옹 냐옹!
멍멍!

인터페이스 장점

  1. 대규모 프로젝트 개발 시 일관되고 정형화된 개발을 위한 표준화가 가능합니다.
  2. 클래스의 작성과 인터페이스의 구현을 동시에 진행할 수 있으므로, 개발 시간을 단축할 수 있습니다.
  3. 클래스와 클래스 간의 관계를 인터페이스로 연결하면, 클래스마다 독립적인 프로그래밍이 가능합니다.

내생각

스프링을 공부하다 인터페이스에 작성한 부분이 이해가 안갔다.
인터페이스의 제어자 부분을 생략해서 작성한 부분이 이해가 안갔는데 다시 인터페이스를 알아보니 어려운 부분이 아니었다. 좀 더 노력하자!

참고

http://www.tcpschool.com/java/java_polymorphism_interface

profile
개발자 지망생

0개의 댓글