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();
}
}
💡 인터페이스를 활용해야 되는 이유!!
- Cooperation (협업)
- Easy to replace (교체 용이)
- 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 |