인터페이스(interface)란?
자식 클래스가 여러 부모 클래스를 상속받을 수 있다면, 다양한 동작을 수행할 수 있다는 장점을 가지게 될 것입니다.
하지만 클래스를 이용하여 다중 상속을 할 경우 메소드 출처의 모호성 등 여러 가지 문제가 발생할 수 있어 자바에서는 클래스를 통한 다중 상속은 지원하지 않습니다.
하지만 다중 상속의 이점을 버릴 수는 없기에 자바에서는 인터페이스라는 것을 통해 다중 상속을 지원하고 있습니다.
인터페이스(interface)란 다른 클래스를 작성할 때 기본이 되는 틀을 제공하면서, 다른 클래스 사이의 중간 매개 역할까지 담당하는 일종의 추상 클래스를 의미합니다.
자바에서 추상 클래스는 추상 메소드뿐만 아니라 생성자, 필드, 일반 메소드도 포함할 수 있습니다. 오로지 추상 메소드와 상수만을 포함할 수 있습니다. 따라서 인터페이스에 선언된 필드는 모두 public static final의 특성을 갖습니다.
인터페이스(interface)는 객체 사용 방법을 정의한 것이므로 실행 시 데이터를 저장할 수 있는 인스턴스 또는 정적 필드를 선언할 수 없습니다. 인터페이스를 통해 호출된 메서드는 최종적으로 객체에서 실행됩니다. 그렇기 때문에 인터페이스의 메소드는 실행 블록이 필요 없는 추상 메소드로 선언합니다.
//interface 선언
public interface RemoteControl {
//상수
public int whwhwh = 10;
//추상메서드
public void turnOn();
public void turnOff();
}
//구현클래스 선언
public class 구현클래스이름 implements 인터페이스이름 {
//인터페이스에 선언된 추상 메소드의 실체 메소드 선언
}
public class Television implements RemoteControl {
//필드
private int volume ;
//turnOn() 추상메서드의 실체 메소드
public void turnOn(){
System.out.println("Tv를 켭니다.");
}
}
'공부중 > 혼자공부하는자바' 카테고리의 다른 글
String.valueOf()보다 숫자+"" (0) | 2024.01.29 |
---|---|
자바의 for구문에서 콜론(:)의 기능 (0) | 2024.01.29 |
객체와 메모리 관계 (0) | 2023.12.15 |
참조 타입과 참조 변수 (0) | 2023.12.13 |
생성자 (0) | 2023.12.07 |
댓글