컴공생의 다이어리
[자바, Java] 인터페이스(interface) 본문
인터페이스(interface)
인터페이스란 다른 클래스를 작성할 때 기본이 되는 틀을 제공하면서, 다른 클래스 사이의 중간 매개 역할까지 담당하는 일종의 추상 클래스를 의미한다. 자바의 다형성을 극대화하여 개발코드 수정을 줄이고 프로그램 유지보수성을 높이기 위해 인터페이스를 사용한다.
인터페이스는 interface 키워드를 통해 선언할 수 있으며 implements 키워드를 통해 일반 클래스에서 인터페이스를 구현할 수 있다.
public interface Predator {
boolean chasePrey(Prey p);
void eatPrey(Prey p);
}
public class Lion implements Predator {
@Override
public boolean chasePrey(Prey p) {
// programming to chase prey p (specifically for a lion)
}
@Override
public void eatPrey(Prey p) {
// programming to eat prey p (specifically for a lion)
}
}
인터페이스를 구현한 클래스는 인터페이스 형으로 선언한 변수로 형 변환할 수 있다. 상속에서의 형 변환과 동일한 의미이다. 자바의 인터페이스는 구현 코드가 없으므로 하나의 클래스가 여러 인터페이스를 구현할 수 있다. 이때, 만일 디폴트 메서드가 중복 되는 경우는 구현하는 클래스에서 재정의해야 한다. 또한 여러 인터페이스를 구현한 클래스는 인터페이스 타입으로 형 변환되는 경우 해당 인터페이스에 선언된 메서드만 사용가능하다.
public interface Sell {
void sell();
}
public interface Buy {
void buy();
}
public class Customer implements Buy, Sell{ //Buy 인터페이스와 Sell 인터페이스를 상속
@Override
public void sell() {
System.out.println("customer sell");
}
@Override
public void buy() {
System.out.println("customer buy");
}
public void sayHello() {
System.out.println("Hello");
}
}
https://limkydev.tistory.com/197
https://tcpschool.com/java/java_polymorphism_interface
https://ko.wikipedia.org/wiki/%EC%9D%B8%ED%84%B0%ED%8E%98%EC%9D%B4%EC%8A%A4_(%EC%9E%90%EB%B0%94)
출처 : 한번에 끝내는 Java/Spring 웹 개발 마스터 초격차 패키지 Online
728x90
반응형
'Development > Java' 카테고리의 다른 글
[자바, Java] 문자열(String) 비교 - ==과 equals() 차이 (0) | 2021.09.01 |
---|---|
[자바, Java] 인터페이스(interface)의 상속 (0) | 2021.08.31 |
[자바, Java] 추상 클래스(abstract class) (0) | 2021.08.29 |
[자바, Java] instanceof 연산자 (0) | 2021.08.28 |
[자바, Java] 캐스팅 - 업캐스팅(Upcasting), 다운캐스팅(Downcasting) (2) | 2021.08.27 |
Comments