본문 바로가기
공부중/혼자공부하는자바

인터페이스 interface

by 식빵ee 2024. 1. 10.

인터페이스(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

댓글


post image post image post image post image post image post image post image post image