본문 바로가기
🐎 언어(Language)/Java

[Java] Interface

by inbeom 2023. 8. 20.
728x90
반응형

인터페이스(interface)란?

클래스 간의 상속을 통해 중복된 코드를 줄일 수 있고, 유지 보수가 편리하며, 통일성이 있고 다형성을 구현할 수 있다는 이점이 있다.

하지만 다중 상속을 할 경우 method출처의 모호성 등 여러 문제가 발생할 수 있기 때문에 자바에서는 클래스를 통한 다중 상속은 지원하지 않는다.

그러한 이유로 인터페이스를 통한 다중상속을 지원한다. 인터페이스란 다른 클래스를 작성하라 때 기본 틀을 제공하면서, 다른 클래스 사이의 중간 매개 역할까지 담당하는 일종의 추상 클래스이다.

인터페이스는 오로지 ‘추상 메소드’와 ‘상수’만을 포함할 수 있다.

 

인터페이스 선언

접근제어자 interface 인터페이스이름 {

    public static final 타입 상수이름 = 값;

    ...

    public abstract 메소드이름(매개변수목록);

    ...

}

 

인터페이스 활용

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. Cooperation (협업)
  2. Easy to replace (교체 용이)
  3. Multiple inheritance (다중 상속)
728x90
반응형

'🐎 언어(Language) > Java' 카테고리의 다른 글

[Java] enum  (0) 2023.08.20
[Java] Stream에 대해 알아보자  (0) 2023.08.20
[Java] Lambda  (0) 2023.08.20
[Java] 객체 지향  (0) 2023.08.20
[Java] 자바란?  (0) 2023.08.20