📍 인터페이스
- 인터페이스는 클래스의 동작을 지정하는 데 사용되는 추상 유형이다.
- 인터페이스는 자료형이다.
- 필드(권장X)와 메소드가 포함될 수 있다.
- 필드에는 public, static, final이 자동으로 붙으므로, 상수로 취급된다.
- 메소드에는 public, abstract가 자동으로 붙으므로,
implements
되는 클래스에서 오버라이딩하여 메소드를 구현해야 한다.
- 클래스에
implements
되고, 여러 개의 인터페이스를 한 클래스에서 구현(다중 구현)할 수 있다.
- 클래스와 인터페이스 사이에서 업 캐스팅(클래스 -> 인터페이스), 다운 캐스팅(인터페이스 -> 클래스)이 가능하다.
- 주로 추상화와 다중 상속을 위해 사용한다.
이미지 출처
package lesson06.quiz01;
public interface Act {
public void action();
}
package lesson06.quiz01;
public interface Sing {
public void song();
}
package lesson06.quiz01;
public class Applicant implements Act, Sing {
@Override
public void song() {
System.out.println("노래 중");
}
@Override
public void action() {
System.out.println("연기 중");
}
}
package lesson06.quiz01;
public class JypEntertainment {
public void actorAudition(Act actorAudition) {
actorAudition.action();
}
public void idolAudition(Sing idolAudition) {
idolAudition.song();
}
}
package lesson06.quiz01;
public class Test {
public static void main(String[] args) {
Applicant boram = new Applicant();
JypEntertainment jyp = new JypEntertainment();
jyp.actorAudition(boram);
jyp.idolAudition(boram);
}
}
📍 클래스 vs 인터페이스
| Class | Interface |
---|
인스턴스화 | 가능 | 불가능 |
메소드 구현 | 가능 | 불가능 |
사용 가능한 접근 제한자 | private/default/protect/public | public |
References
🔗 https://www.geeksforgeeks.org/interfaces-in-java